Na jednym VPS-ie z Debianem 6 nie mogłem przejść na konto roota korzystając z polecenia su
. Próba jego wykonania kończyła się tak:
joe@dejiko:~$ su - Hasło: su: Uwierzytelnienie nie powiodło się
W /var/log/auth.log
pojawiały się takie wpisy:
Feb 21 10:48:30 dejiko unix_chkpwd[4123]: check pass; user unknown Feb 21 10:48:30 dejiko unix_chkpwd[4123]: password check failed for user (root) Feb 21 10:48:30 dejiko su[4122]: pam_unix(su:auth): authentication failure; logname=joe uid=1000 euid=1000 tty=/dev/pts/1 ruser=joe rhost= user=root
Początkowo myślałem, że problem tkwi w tym, że użytkownik joe nie należy do grupy sudoers
, ale ten trop okazał się mylny. W wyniku śledztwa okazało się, że winne są uprawnienia pliku /bin/su
. Na działającym systemie wyglądały one tak:
-rwsr-xr-x 1 root root 34024 2011-02-15 /bin/su
zaś na problematycznej maszynie tak:
-rwxr-xr-x 1 root root 34024 2011-02-15 /bin/su
Innymi słowy brakowało bitu „set UID”, więc problem rozwiązałem poleceniem:
chmod u+s /bin/su
Na inkryminowanym systemie ten sam problem dotyczył polecenia passwd
, objawy były następujące:
joe@dejiko:~$ passwd Zmienianie hasła dla joe. (obecne) hasło UNIX: passwd: Błąd podczas modyfikowania tokenu uwierzytelniania passwd: password unchanged
Tu również pomógł chmod
.