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 runaspwve targetpwaynı 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/sudove şö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-authsatı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.soyerine örneğin kullanabilir pam_unix.sove 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/sudokaldırın @include common-authve 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 .dbgeçirilen veritabanına bir uzantı eklediğini unutmayın , bu yüzden .dbkapalı bırakmalısınız .
Göre dannysauer içinde bir yorumun , sen aynı düzenleme yapmak gerekebilir /etc/pam.d/sudo-ide.
Şimdi, sudo için passwordgerç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ı