ls -l /etc/passwd
дає
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /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
. Використовують BSD /etc/master.passwd
. Solaris використовує /etc/security/passwd
. HP-UX використовує /.secure/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
програми та один єдиний файл, що містить усі хешовані паролі у вашій системі, ви можете замінити його модулем PAM Openwall TCB . Це забезпечує кожному користувачеві власний файл для зберігання хешованих паролів - в результаті кількість setuid root
програм у системі може бути різко зменшена.
Паролі не зберігаються /etc/passwd
вже кілька років; ім'я є застарілим, функція - це локальна база даних користувачів, і вона повинна бути читаною для всіх з цією метою.
Певною мірою це так, як ви можете ідентифікувати користувачів. Раніше ви також можете забрати їх паролі. Однак єдиний користувальницький номер, який дійсно варто зламати, - це те, root
що добре відомо без файлу пароля.
Корисність того, щоб читати файл файлів паролів, як правило, значно перевищує ризик. Навіть якби він не був читаний у всьому світі, функціонуюча getent passwd
команда призведе до втрати безпеки.
Можливість некористуючих користувачів ідентифікувати файли, які належать іншим, зникне. Можливість виявлення належних (користувач у файлі passwd) та невідомих файлів (користувач не у файлі passwd) може бути корисною при перегляді вмісту файлової системи. Хоча можна було б вирішити це за допомогою відповідних setuid
програм, це додало б величезний вектор атаки через ці програми.
Зрештою, це питання балансу, і в цьому випадку я б сказав, що баланс твердо налаштований на читати світ паролів.