Привет.
Operating System: Ubuntu 22.04.2 LTS
Kernel: Linux 5.19.0-45-generic
Поставил файлу /etc/shadow группу root и все права для группы.
----rwx--- 1 root root ... /etc/shadow
-rwxr-sr-x 1 root root ... /usr/bin/passwd
У файла /usr/bin/passwd убрал SUID и добавил SGID, ожидая что результат работы утилиты passwd будет таким же как и до изменений. На деле, натыкаюсь на ошибку:
user@Ubuntu1:~$ passwd
Changing password for user.
Current password:
New password:
Retype new password:
passwd: Authentication token manipulation error
passwd: password unchanged
Почему так происходит и как заставить утилиту работать с установленным SGID и отсутствующим SUID?
Для того чтобы система приняла вводимый пароль, у файла /etc/shadow должны быть минимальные права 0040 и/или 0004. Если же «r» отсутствует у группы и других пользователей (rwx-wx-wx), получаем такой результат:
user@Ubuntu1:~$ passwd
Changing password for user.
Current password:
Current Password:
passwd: Authentication token manipulation error
passwd: password unchanged
Т.е. ошибка появляется уже на этапе ввода текущего пароля. До ввода нового не доходим. Полагаю, что если у файла shadow отсутствуют нужные права, мы должны увидеть сообщение - Permission denied. Но в данном случае предлагается дважды ввести пароль (независимо от того верно мы вводим его или нет). Почему это происходит?
3й вопрос вытекает из второго. Почему в первой строке ввода «password» с маленькой буквы, а во втором «Password:» - с большой? Откуда тянется текст «Current password:» и «Current Password:»?