Есть ли какая-то причина, по которой / etc / passwd должен читаться во всем мире? Это не похоже на хеши паролей, которые не должны раскрываться, я просто хочу знать, почему.
Я думаю, что когда выбранная вами оболочка знает, что нужно расширяться ~userдо домашнего каталога пользователя, она на самом деле ищет это /etc/passwd, так что хорошо, чтобы она была читабельной, а не предоставляла всем оболочкам повышенные права.
Ульрих Шварц
Расширение «~» является функцией переменной $ HOME - установите $ HOME в / var / tmp, а затем, если вы выполните «cd ~», - она изменится на / var / tmp.
Саураб Хирани
Ответы:
14
/etc/passwdиногда называется пользовательской базой данных. Это должно дать нам ключ к пониманию того, почему он должен быть доступен для чтения всем. Любая утилита, которая проверяет метаданные файла, должна уметь читать /etc/passwd(и /etc/group), чтобы иметь возможность преобразовывать числовые идентификаторы, используемые ядром и его подсистемами, в удобные для человека имена, на которые мы полагаемся. Инструменты, которые должны найти ваш домашний каталог (агенты доставки почты и т. Д.) /etc/passwd, inetИщут эту информацию , а мини-серверы любят fingerdискать ваши данные /etc/passwd.
Как указывалось в другом месте, в файле нет особо конфиденциальных данных, поскольку современные системы помещают хэши паролей в файл теневых паролей, который доступен для чтения только пользователю root.
Тогда, по историческим причинам это называется, passwdкогда на самом деле это имя не отражает то, что находится в файле?
Эмануэль Берг
8
Да, я так думаю. В очень ранних версиях UNIX пароли действительно хранились /etc/passwd(сначала не зашифрованы!). К тому времени, когда хеши паролей были перемещены в теневой файл, уже существовало много утилит, которые полагались на другие фрагменты информации /etc/passwd, поэтому имя застряло.
D_Bye
7
/etc/passwdне содержит хэши паролей (так что это не большая проблема). /etc/shadowсодержит хэши паролей, и они доступны для чтения только пользователю root (& shadow group)
~user
до домашнего каталога пользователя, она на самом деле ищет это/etc/passwd
, так что хорошо, чтобы она была читабельной, а не предоставляла всем оболочкам повышенные права.Ответы:
/etc/passwd
иногда называется пользовательской базой данных. Это должно дать нам ключ к пониманию того, почему он должен быть доступен для чтения всем. Любая утилита, которая проверяет метаданные файла, должна уметь читать/etc/passwd
(и/etc/group
), чтобы иметь возможность преобразовывать числовые идентификаторы, используемые ядром и его подсистемами, в удобные для человека имена, на которые мы полагаемся. Инструменты, которые должны найти ваш домашний каталог (агенты доставки почты и т. Д.)/etc/passwd
,inet
Ищут эту информацию , а мини-серверы любятfingerd
искать ваши данные/etc/passwd
.Как указывалось в другом месте, в файле нет особо конфиденциальных данных, поскольку современные системы помещают хэши паролей в файл теневых паролей, который доступен для чтения только пользователю root.
источник
passwd
когда на самом деле это имя не отражает то, что находится в файле?/etc/passwd
(сначала не зашифрованы!). К тому времени, когда хеши паролей были перемещены в теневой файл, уже существовало много утилит, которые полагались на другие фрагменты информации/etc/passwd
, поэтому имя застряло./etc/passwd
не содержит хэши паролей (так что это не большая проблема)./etc/shadow
содержит хэши паролей, и они доступны для чтения только пользователю root (& shadow group)источник