33.2. pwd – База данных паролей¶pwd – The password database
Платформы: Unix
Этот модуль предоставляет доступ к базе данных учётных записей и паролей Unix. Он доступен на всех версиях Unix.
Записи базы данных паролей представлены в виде объекта, подобного кортежу, чьи атрибуты соответствуют полям структуры passwd (поле Attribute ниже, см. <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 используют так называемую систему shadow password (теневых паролей). В таких Unix системах поле pw_passwd содержит только звёздочку ('*') или букву 'x', при этом зашифрованный пароль хранится в файле /etc/shadow, который недоступен для чтения всем пользователям. Содержит ли поле pw_passwd что-либо полезное, зависит от системы. Если требуется доступ к зашифрованному паролю, следует использовать модуль spwd, если он доступен.
Определяются следующие элементы:
- pwd.getpwuid(uid)¶
- Возвращает запись базы данных паролей для указанного числового идентификатора пользователя.
- pwd.getpwnam(name)¶
- Возвращает запись базы данных паролей для указанного имени пользователя.
- pwd.getpwall()¶
- Возвращает список всех доступных записей базы данных паролей в произвольном порядке.