Я столкнулся с операционной системой, минибиевой, где бит setuid отсутствовал в /bin/su, вызвав эту ошибку, даже если пароль учетной записи root был включен.
В Linux единственный способ Чтобы стать root, нужно выполнить файл setuid-root. Когда вы запускаете sudo или su, их бит setuid установлен, поэтому процесс «эффективный пользователь становится root», тогда они выполняют аутентификацию уже как root!
В любом случае, вот симптомы и исправление:
$ su
Password:
su: authentication failure
$ sudo su
# ls -l /bin/su
-rwxr-xr-x 1 root root 31092 Jun 5 2012 /bin/su
# chmod u+s /bin/su
# ls -l /bin/su
-rwsr-xr-x 1 root root 31092 Jun 5 2012 /bin/su
Обратите внимание на разницу: rwx до, rws после. [!d3 ]