Как пользователи Linux меняют свой пароль без привилегий root?

Я заметил, что обычные пользователи могут менять свои пароли без sudo. Но, насколько мне известно, для смены пароля необходимо написать файл /etc/shadow, который доступен только пользователю root.

Как это случилось?

2 ответа

Решение

passwd Программа в установленном корне setuid:

$ ls -l `which passwd`
-rwsr-xr-x 1 root root 41284 Sep 12  2012 /usr/bin/passwd

Обратите внимание s в четвертой позиции. Это флаг, который может быть установлен в правах доступа к файлу, который говорит Linux принимать привилегии пользователя, которому принадлежит исполняемый файл, при его запуске - в данном случае, root.

Пользователь может просто сменить пароль

passwd

из командной строки Linux.

Другие вопросы по тегам