Назад | Перейти на главную страницу

Обычные пользователи могут читать / etc / passwd, это дыра в безопасности?

ls -l /etc/passwd

дает

$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd

Так что обычный пользователь может прочитать файл. Это дыра в безопасности?

Фактические хэши паролей хранятся в /etc/shadow, который не читается обычными пользователями. /etc/passwd содержит другую информацию об идентификаторах пользователей и оболочках, которые должны быть доступны для чтения всем пользователям для функционирования системы.

Обычно хешированный пароли хранятся в /etc/shadow в большинстве систем Linux:

-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow

(Они хранятся в /etc/master.passwd на Системы BSD.)

Программы, которым требуется выполнить аутентификацию, по-прежнему необходимо запускать с root привилегии:

-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd

Если вам не нравится setuid root программ и один файл, содержащий все хешированные пароли в вашей системе, вы можете заменить его на Модуль Openwall TCB PAM. Это обеспечивает каждый пользователь со своим собственным файлом для хранения их хешированного пароля - в результате количество setuid root количество программ в системе может быть значительно сокращено.

Пароли не хранились в /etc/passwd уже много лет; имя унаследовано, функция локальной базы данных пользователей остается и должен быть доступным для чтения всем для этой цели.

В некоторой степени это так, поскольку вы можете идентифицировать пользователей. Раньше вы также могли подбирать их пароли. Однако действительно стоит взломать один ИД пользователя: root который хорошо известен без файла паролей.

Как правило, полезность доступа к файлу паролей во всем мире намного перевешивает риск. Даже если бы он не был доступен для чтения, работающий getent passwd команда сделает усиление безопасности недействительным.

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

В конце концов, это вопрос баланса, и в этом случае я бы сказал, что баланс твердо стоит на том, чтобы мир паролей был читаемым.