все 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Сообщить о неточности