Исторически у /etc/passwd
были все пользовательские данные, тени не было. Однако было обнаружено, что к файлу может быть применена атака по словарю для обнаружения паролей (, если они есть в словаре ).
Поэтому было решено убрать пароли из /etc/passwd
, остальная часть файла осталась, так как использовалась многими моими программами напр. ls
. Пароли были перенесены в /etc/shadow
, а этот файл сделан так, что его может прочитать только root
.
/etc/passwd
теперь имеет x
для поля пароля. /etc/shadow
разделяет только первое поле (ключ -поле / имя пользователя ). /etc/shadow
был расширен, чтобы содержать другие поля управления паролями.
Существование двух файлов является следствием того, что /etc/passwd
является текстовым файлом, который может быть прочитан другими приложениями (как finger
, ident
или ls
, например ), поэтому злоумышленник может получить доступ к информации файла, содержащего хешированный пароль.
Для повышения безопасности хешированный пароль, который раньше был в файле, был перемещен в другой файл с именем /etc/shadow
, доступный только root
Основное отличие состоит в том, что они содержат разные фрагменты данных.
passwd
содержит общедоступную информацию о пользователях (UID, полное имя, домашний каталог ), а shadow
содержит хешированный пароль и данные об истечении срока действия пароля. Причины разделения отчасти исторические.