Есть ли какая-то причина, по которой / etc / passwd должен читаться во всем мире? Это не похоже на хеши паролей, которые не должны раскрываться, я просто хочу знать, почему.
Есть ли какая-то причина, по которой / 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)
~user
до домашнего каталога пользователя, она на самом деле ищет это/etc/passwd
, так что хорошо, чтобы она была читабельной, а не предоставляла всем оболочкам повышенные права.