35.2. pwd – База данных паролей¶pwd – The password database
Этот модуль предоставляет доступ к базе данных учётных записей и паролей Unix. Он доступен на всех версиях Unix.
Записи базы данных паролей предоставляются в виде объекта, похожего на кортеж, чьи атрибуты соответствуют членам структуры passwd (поля атрибутов ниже,
см. <pwd.h>):
| Индекс | Атрибут | Значение |
|---|---|---|
| 0 | pw_name |
Логин |
| 1 | pw_passwd |
Необязательный зашифрованный пароль |
| 2 | pw_uid |
Числовой идентификатор пользователя |
| 3 | pw_gid |
Числовой идентификатор группы |
| 4 | pw_gecos |
Имя пользователя или поле комментария |
| 5 | pw_dir |
Домашний каталог пользователя |
| 6 | pw_shell |
Интерпретатор команд пользователя |
Элементы uid и gid – целые числа, все остальные – строки. Исключение KeyError возбуждается, если запрашиваемая запись не найдена.
Примечание
В традиционных Unix-системах поле pw_passwd обычно содержит пароль, зашифрованный с помощью алгоритма на основе DES (см. модуль crypt). Однако большинство современных Unix-систем используют так называемую систему теневых паролей. В таких системах поле pw_passwd содержит только звёздочку ('*') или букву 'x', а зашифрованный пароль хранится в файле /etc/shadow, который не доступен для чтения всем пользователям. Содержит ли поле pw_passwd что-либо полезное, зависит от системы. Если требуется доступ к зашифрованному паролю, следует использовать модуль spwd (если он доступен).
Определяются следующие элементы:
-
pwd.getpwuid(uid)¶ Возвращает запись базы данных паролей для указанного числового идентификатора пользователя.
-
pwd.getpwnam(name)¶ Возвращает запись базы данных паролей для указанного имени пользователя.
-
pwd.getpwall()¶ Возвращает список всех доступных записей базы данных паролей в произвольном порядке.