Почему / etc / passwd открыт для чтения?

12

Есть ли какая-то причина, по которой / etc / passwd должен читаться во всем мире? Это не похоже на хеши паролей, которые не должны раскрываться, я просто хочу знать, почему.

маргаритка
источник
1
Я думаю, что когда выбранная вами оболочка знает, что нужно расширяться ~userдо домашнего каталога пользователя, она на самом деле ищет это /etc/passwd, так что хорошо, чтобы она была читабельной, а не предоставляла всем оболочкам повышенные права.
Ульрих Шварц
Расширение «~» является функцией переменной $ HOME - установите $ HOME в / var / tmp, а затем, если вы выполните «cd ~», - она ​​изменится на / var / tmp.
Саураб Хирани

Ответы:

14

/etc/passwdиногда называется пользовательской базой данных. Это должно дать нам ключ к пониманию того, почему он должен быть доступен для чтения всем. Любая утилита, которая проверяет метаданные файла, должна уметь читать /etc/passwd/etc/group), чтобы иметь возможность преобразовывать числовые идентификаторы, используемые ядром и его подсистемами, в удобные для человека имена, на которые мы полагаемся. Инструменты, которые должны найти ваш домашний каталог (агенты доставки почты и т. Д.) /etc/passwd, inetИщут эту информацию , а мини-серверы любят fingerdискать ваши данные /etc/passwd.

Как указывалось в другом месте, в файле нет особо конфиденциальных данных, поскольку современные системы помещают хэши паролей в файл теневых паролей, который доступен для чтения только пользователю root.

D_Bye
источник
6
Тогда, по историческим причинам это называется, passwdкогда на самом деле это имя не отражает то, что находится в файле?
Эмануэль Берг
8
Да, я так думаю. В очень ранних версиях UNIX пароли действительно хранились /etc/passwd(сначала не зашифрованы!). К тому времени, когда хеши паролей были перемещены в теневой файл, уже существовало много утилит, которые полагались на другие фрагменты информации /etc/passwd, поэтому имя застряло.
D_Bye
7

/etc/passwdне содержит хэши паролей (так что это не большая проблема). /etc/shadowсодержит хэши паролей, и они доступны для чтения только пользователю root (& shadow group)

Манула Вайдьянатха
источник
1
В некоторых настройках пароли даже не находятся в этом файле, потому что они находятся в LDAP или другом защищенном бэкэнде!
Тим