Python Glossary English

все Python 3до 3.13Linux · macOSУдалено из стандартной библиотекипонятие

spwd

удалённые модули

Чтение теневой базы паролей /etc/shadow. Только Unix. Удалён в Python 3.13, стандартной замены нет — проверку пароля делайте через python-pam.

Синтаксис

import spwd  # до 3.13

spwd.getspnam('alice') возвращал запись из /etc/shadow: хеш пароля sp_pwdp, срок его действия и прочие поля; читать её мог только root. Обычно это нужно было, чтобы проверить пароль, сравнив хеш через crypt. Убран по PEP 594 вместе с crypt: вручную читать хеши — небезопасно и в обход системной политики входа. Стандартной замены нет. Проверку пароля поручают PAM — пакет python-pam: pam.authenticate(имя, пароль). Открытые сведения о пользователе (домашний каталог, оболочка, UID) по-прежнему даёт pwd.getpwnam(), и прав root он не требует.

Примеры

# Python 3.13+
try:
    import spwd
except ModuleNotFoundError as e:
    print(type(e).__name__)  # → ModuleNotFoundError
# Python 3.13+
import pwd
print(pwd.getpwnam('root').pw_dir)  # → /root

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности