Kök şifresini sormak isterseniz, kullanıcının şifresinin aksine, ekleyebileceğiniz seçenekler vardır /etc/sudoers
. rootpw
Özellikle de root şifresini isteyecektir. Var runaspw
ve targetpw
aynı zamanda; Ayrıntılar için sudoers (5) kılavuz sayfasına bakınız.
Bunun dışında sudo, kimlik doğrulama işlemini (diğer her şey gibi) PAM üzerinden yapar. PAM, uygulama başına yapılandırmayı destekler. Sudo'nun konfigürasyonu (en azından Debian sistemimde) /etc/pam.d/sudo
ve şöyle görünüyor:
$ cat sudo
#%PAM-1.0
@include common-auth
@include common-account
@include common-session-noninteractive
Başka bir deyişle, varsayılan olarak, sistemdeki diğer her şey gibi kimliğini doğrular. Bu @include common-auth
satırı değiştirebilir ve PAM'in (ve böylece sudo) alternatif bir şifre kaynağı kullanmasını sağlayabilirsiniz. Ortak kimlik doğrulamasında yorumlanmayan satırlar şuna benzer: (varsayılan olarak, örneğin LDAP kullanıyorsanız, bu farklı olacaktır):
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so
Alternatif şifreler pam_userdb.so
yerine örneğin kullanabilir pam_unix.so
ve bir Berkeley DB veritabanında saklayabilirsiniz.
örnek
Ben dizin oluşturulan /var/local/sudopass
, sahibi / grup root:shadow
, mod 2750
. İçinde devam ettim ve db5.1_load
(Debian Wheezy'de kullanılan Berkeley DB sürümü olan) kullanarak bir şifre veritabanı dosyası oluşturdum :
# umask 0027
# db5.1_load -h / var / yerel / sudopass -t karma -T passwd.db
anthony
WMaEFvCFEFplI
^D
Bu karma mkpasswd -m des
"şifre" şifresi kullanılarak oluşturuldu . Çok güvenli! (Ne yazık ki, pam_userdb, eski crypt(3)
karma işlemden daha iyi bir şeyi desteklemiyor gibi görünüyor ).
Şimdi, satırı düzenleyip /etc/pam.d/sudo
kaldırın @include common-auth
ve bunun yerine şunu yerleştirin:
auth [success=1 default=ignore] pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd
auth requisite pam_deny.so
auth required pam_permit.so
Pam_userdb'nin .db
geçirilen veritabanına bir uzantı eklediğini unutmayın , bu yüzden .db
kapalı bırakmalısınız .
Göre dannysauer içinde bir yorumun , sen aynı düzenleme yapmak gerekebilir /etc/pam.d/sudo-i
de.
Şimdi, sudo için password
gerçek giriş şifremi yerine kullanmalıyım :
@ sudotest @ anthony: ~ $ sudo -K
@ sudotest @ anthony: ~ $ sudo echo -e '\ nit çalışmış'
[sudo] anthony için şifre: passwordRETURN
işe yaradı