В Fedora я удивлен это, если моя учетная запись администратора не имеет пароля, sudo
, gksu
и gksudo
не предложит мне одного! (это не вызывается /etc/sudoers
). В Ubuntu они попросят у меня пароля и если я дам ей пустую, то они не позволят мне передать.
Подобные вопросы задавали много раз прежде, но они только обращаются sudo
и нет gksu
, gksudo
ни любой другой графический инструмент. Кроме того, ни один sudo -i
ни редактирование /etc/sudoers
необходим; это - поведение Fedora по умолчанию.
Конечно, это, вероятно, не рекомендуется, я просто спрашиваю это так, чтобы я мог узнать больше, как Linux работает.
Во-первых, примечание о системах безопасности включило: sudo
и gksudo
управляют sudoers
, но большая часть GUI использует polkit, конфигурация которого независима от sudoers
. Нет многих общих множителей:
sudo
группа для предоставления административных привилегий в обеих системах.В частности, конфигурация PAM Fedora по умолчанию имеет:
$ grep 'auth.*pam_unix' /etc/pam.d -R
/etc/pam.d/password-auth-ac:auth sufficient pam_unix.so nullok try_first_pass
/etc/pam.d/system-auth-ac:auth sufficient pam_unix.so nullok try_first_pass
/etc/pam.d/system-auth:auth sufficient pam_unix.so nullok try_first_pass
/etc/pam.d/vmtoolsd:auth sufficient pam_unix2.so nullok
/etc/pam.d/vmtoolsd:auth sufficient pam_unix.so shadow nullok
/etc/pam.d/vmtoolsd:auth required pam_unix_auth.so shadow nullok
/etc/pam.d/password-auth:auth sufficient pam_unix.so nullok try_first_pass
Контрастная Ubuntu:
$ grep 'auth.*pam_unix' /etc/pam.d -R
/etc/pam.d/common-account:account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
/etc/pam.d/common-auth:auth [success=2 default=ignore] pam_unix.so nullok_secure
Важный момент nullok_secure
быть установленным для pam_unix
в Ubuntu по сравнению с nullok
в Fedora. Согласно man pam_unix
:
nullok
The default action of this module is to not permit the user access
to a service if their official password is blank. The nullok
argument overrides this default and allows any user with a blank
password to access the service.
nullok_secure
The default action of this module is to not permit the user access
to a service if their official password is blank. The nullok_secure
argument overrides this default and allows any user with a blank
password to access the service as long as the value of PAM_TTY is
set to one of the values found in /etc/securetty.
Теперь, /etc/securetty
действительно содержит :0
и другая команда оценивает за графические сессии, таким образом, gksudo
, например, будет работать с пустыми паролями.
# Local X displays (allows empty passwords with pam_unix's nullok_secure)
:0
:0.0
:0.1
:1
:1.0
:1.1
:2
:2.0
:2.1
:3
:3.0
:3.1
#...
Polkit, с другой стороны, кажется, уезжает PAM_TTY
сброс, таким образом, securetty
не влияет на него. sudo
, конечно, не будет работать, так как Вы всегда работаете sudo
от терминала и псевдотерминала, выделенного ему (/dev/ptsX
) не будет упомянут в /etc/securetty
. Можно, однако, использовать sudo
в TTYs.
Таким образом, как мы делаем Ubuntu как Fedora? Просто изменение nullok_secure
в common-auth
кому: nullok
:
sudo sed -i.bak '/pam_unix/s/nullok_secure/nullok' /etc/pam.d/common-auth