Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/105: Рейтинг темы: голосов - 105, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 03.11.2018
Сообщений: 3
1

/etc/passwd

22.11.2018, 10:40. Показов 20554. Ответов 11
Метки нет (Все метки)

Исторически сложилось, что в Unix-подобных операционных системах информация о пользователях хранится в файле под названием /etc/passwd. Формат этого файла такой: информация о каждом пользователе записана на отдельной строке и состоит из семи полей, разделённых двоеточиями:

- логин пользователя;
- пароль пользователя (на самом деле не совсем так, но в этой задаче будем считать, что там действительно хранится
пароль);
- номер пользователя в системе;
- номер группы, к которой принадлежит пользователь;
- дополнительная информация о пользователе;
- домашний каталог пользователя;
- интерпретатор командной строки, который запускается для пользователя.
Нас здесь будут интересовать первое, второе и пятое поля.

Предположим, вы — системный администратор, и хотите порекомендовать тем из ваших сотрудников, кто использует слишком распространённый пароль, сменить его. У вас имеется файл /etc/passwd с сервера с информацией обо всех пользователях. У вас принято, что дополнительная информация о пользователе системы начинается с его имени, а затем после запятой может следовать любая другая информация (например, должность). Кроме того, у вас имеется список самых часто используемых паролей. Напишите тем сотрудникам, кто использует один из этих паролей, чтобы они сменили его.

Формат ввода
Сначала вводится содержимое файла /etc/passwd в описанном в условии формате (не менее одной строки).

Затем следует пустая строка.

После этого вводится список самых часто используемых паролей (не менее одного), разделённых точкой с запятой.

Формат вывода
Для каждого сотрудника, пароль которого — один из самых часто используемых, выведите две строки. На первой строке после слова «To: » укажите логин пользователя, чтобы потом другая программа отправила ему ваше сообщение по электронной почте. На второй строке выведите: «<Имя сотрудника>, ваш пароль слишком простой, смените его.»

Пример

Ввод
ivanov:qwerty:100:1:Сергей Иванов, менеджер:/home/ivanov:/bin/sh
ilyina:gfhjkm:101:1:Мария Ильина, старший программист, HL3:/home/ilyina:/bin/sh
kuznetsova:jxtym[bnhsqgfhjkm:102:1:Дарья Кузнецова, младший программист:/home/kuznetsova:/bin/sh
polivanov:qwerty:103:1:Андрей Поливанов, младший программист, TF3:/home/polivanov:/bin/sh

123456;qwerty;password

Вывод
To: ivanov
Сергей Иванов, ваш пароль слишком простой, смените его.
To: polivanov
Андрей Поливанов, ваш пароль слишком простой, смените его.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2018, 10:40
Ответы с готовыми решениями:

/etc/passwd
Исторически сложилось, что в Unix-подобных операционных системах информация о пользователях...

/etc/passwd
Исторически сложилось, что в Unix-подобных операционных системах информация о пользователях...

/etc/passwd
Исторически сложилось, что в Unix-подобных операционных системах информация о пользователях...

/etc/passwd
Исторически сложилось, что в Unix-подобных операционных системах информация о пользователях...

11
1 / 1 / 0
Регистрация: 28.07.2019
Сообщений: 8
28.07.2019, 18:36 2
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a = []
b = []
c = []
d = []
while (True):
    d.clear()
    e = input()
    if e == '':
        break
    else:
        d = e.split(':')
        f = d[4].split(',')
        b.append(d[0])
        a.append(f[0])
        c.append(d[1])
g = input().split(';')
for i in range(len(c)):
    if c[i] in g:
        print('To:', b[i])
    print(a[i], ', ваш пароль слишком простой, смените его.', sep='')
0
Эксперт Python
5086 / 3619 / 1147
Регистрация: 28.10.2013
Сообщений: 9,131
Записей в блоге: 1
28.07.2019, 18:41 3
Цитата Сообщение от Lonely Samurai Посмотреть сообщение
Причина: Tab не показывает
Кнопка Python на панели редактирования. На будущее.
Мертвые темы не стоит воскрешать - на будущее.
Перед тем, как постить что-то в первый раз - ознакомиться с правилами. Тоже на будущее.
2
1 / 1 / 0
Регистрация: 09.11.2019
Сообщений: 85
31.05.2020, 23:10 4
Исторически сложилось, что в Unix-подобных операционных системах информация о пользователях хранится в файле под названием /etc/passwd. Формат этого файла такой: информация о каждом пользователе записана на отдельной строке и состоит из семи полей, разделённых двоеточиями:

логин пользователя;
пароль пользователя (на самом деле не совсем так, но в этой задаче будем считать, что там действительно хранится пароль);
номер пользователя в системе;
номер группы, к которой принадлежит пользователь;
дополнительная информация о пользователе;
домашний каталог пользователя;
интерпретатор командной строки, который запускается для пользователя.
Нас здесь будут интересовать первое, второе и пятое поля.
Предположим, вы — системный администратор, и хотите порекомендовать тем из ваших сотрудников, кто использует слишком распространённый пароль, сменить его. У вас имеется файл /etc/passwd с сервера с информацией обо всех пользователях. У вас принято, что дополнительная информация о пользователе системы начинается с его имени, а затем после запятой может следовать любая другая информация (например, должность). Кроме того, у вас имеется список самых часто используемых паролей. Напишите тем сотрудникам, кто использует один из этих паролей, чтобы они сменили его.

Формат ввода
Сначала вводится содержимое файла /etc/passwd в описанном в условии формате (не менее одной строки).

Затем следует пустая строка.

После этого вводится список самых часто используемых паролей (не менее одного), разделённых точкой с запятой.

Формат вывода
Для каждого сотрудника, пароль которого — один из самых часто используемых, выведите две строки. На первой строке после слова «To: » укажите логин пользователя, чтобы потом другая программа отправила ему ваше сообщение по электронной почте. На второй строке выведите: «<Имя сотрудника>, ваш пароль слишком простой, смените его.»

Пример
Ввод
ivanov:qwerty:100:1:Сергей Иванов, менеджер:/home/ivanov:/bin/sh
ilyina:gfhjkm:101:1:Мария Ильина, старший программист, HL3:/home/ilyina:/bin/sh
kuznetsova:jxtym[bnhsqgfhjkm:102:1:Дарья Кузнецова, младший программист:/home/kuznetsova:/bin/sh
polivanov:qwerty:103:1:Андрей Поливанов, младший программист, TF3:/home/polivanov:/bin/sh

123456;qwerty;password
Вывод
To: ivanov
Сергей Иванов, ваш пароль слишком простой, смените его.
To: polivanov
Андрей Поливанов, ваш пароль слишком простой, смените его.
Python
1
/etc/passwd
0
Йуный падаван
Эксперт PythonЭксперт Java
8658 / 5081 / 1766
Регистрация: 21.10.2017
Сообщений: 13,718
01.06.2020, 08:57 5
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def send(login, name):
    print(f'To: {login}\n{name}, ваш пароль слишком простой, смените его.\n')
 
 
with open("in.txt", "r") as f:
    lst = f.read().split('\n')
 
for item in lst:
    if len(item) <= 10:
        break
    dat = item.split(":")
    if dat[1] in lst[-1]:
        send(dat[0], dat[4].split(",")[0])
0
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 1
14.06.2020, 16:51 6
неправильно

должно вывести:

To: ivanov
Сергей Иванов, ваш пароль слишком простой, смените его.
To: polivanov
Андрей Поливанов, ваш пароль слишком простой, смените его.

а выводит:

To: ivanov
Сергей Иванов, ваш пароль слишком простой, смените его.
Мария Ильина, ваш пароль слишком простой, смените его.
Дарья Кузнецова, ваш пароль слишком простой, смените его.
To: polivanov
Андрей Поливанов, ваш пароль слишком простой, смените его.
0
Просто Лис
Эксперт Python
4406 / 2803 / 929
Регистрация: 17.05.2012
Сообщений: 8,190
Записей в блоге: 9
14.06.2020, 16:54 7
Цитата Сообщение от andreyoz Посмотреть сообщение
а выводит:
Последнюю строчку исправь.
0
0 / 0 / 0
Регистрация: 28.11.2020
Сообщений: 2
28.11.2020, 18:28 8
а что в ней надо дописать или переписать?
0
Просто Лис
Эксперт Python
4406 / 2803 / 929
Регистрация: 17.05.2012
Сообщений: 8,190
Записей в блоге: 9
28.11.2020, 18:30 9
Отступ дописать.
0
0 / 0 / 0
Регистрация: 28.11.2020
Сообщений: 2
28.11.2020, 18:32 10
можешь помочь? я просто только начал изучать программирование и ещё плохо в нём разбираюсь
0
13 / 11 / 4
Регистрация: 04.03.2020
Сообщений: 20
03.12.2020, 10:56 11
Python
1
2
3
4
5
6
7
8
9
10
11
a = []
b = list(input().split(':'))
while b != ['']:
    a.append(b)
    b = list(input().split(':'))
c = list(input().split(';'))
for i in range(len(a)):
    if c.count(a[i][1]) != 0:
        print('To:', a[i][0])
        m = a[i][4].split(',')
        print(m[0] + ',' + ' ваш пароль слишком простой, смените его.')
0
13 / 11 / 4
Регистрация: 04.03.2020
Сообщений: 20
03.12.2020, 10:57 12
Python
1
2
3
4
5
6
7
8
9
10
11
a = []
b = list(input().split(':'))
while b != ['']:
    a.append(b)
    b = list(input().split(':'))
c = list(input().split(';'))
for i in range(len(a)):
    if c.count(a[i][1]) != 0:
        print('To:', a[i][0])
        m = a[i][4].split(',')
        print(m[0] + ',' + ' ваш пароль слишком простой, смените его.')
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2020, 10:57

Таблица passwd (NIS)
Не пойму суть задания: Напишите команду: До подкаталога users скопируйте файлы /etc/passwd,...

Скрыть файл passwd
Здравствуйте. Как скрыть файл /etc/passwd от пользователя? То есть чтобы пользователь не смог...

Задание вывода из /etc/passwd с awk
Ребят, пожалуйста помогите написать данный скрипт. Нужно вывести из файла /etc/passwd все логины...

Почему grep не находит пользователя в /etc/passwd?
Задание такое: Написать сценарий, который сохраняет в переменную имя текущего пользователя , а...

Случайно поменял параметры passwd Linux
Случайно поменял параметры passwd Linux теперь не могу войти под свой аккаунт помогите ...

Для каждого пользователя из / etc / passwd напишите строку
Для каждого пользователя из / etc / passwd напишите строку &lt;логин&gt;: &lt;группы, в которых появляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.