'sudo', 'gksu' и 'gksudo' без пароля

В Fedora я удивлен это, если моя учетная запись администратора не имеет пароля, sudo, gksu и gksudo не предложит мне одного! (это не вызывается /etc/sudoers). В Ubuntu они попросят у меня пароля и если я дам ей пустую, то они не позволят мне передать.

  1. Как Fedora делает это? (каковы технические детали дизайна в Fedora, который вызывает это поведение?)
  2. Как я могу заставить Ubuntu вести себя как это? (как настроить Ubuntu для действия как Fedora в этом отношении?)

Подобные вопросы задавали много раз прежде, но они только обращаются sudo и нет gksu, gksudo ни любой другой графический инструмент. Кроме того, ни один sudo -i ни редактирование /etc/sudoers необходим; это - поведение Fedora по умолчанию.

Конечно, это, вероятно, не рекомендуется, я просто спрашиваю это так, чтобы я мог узнать больше, как Linux работает.

0
задан 13 April 2017 в 15:24

1 ответ

Во-первых, примечание о системах безопасности включило: sudo и gksudo управляют sudoers, но большая часть GUI использует polkit, конфигурация которого независима от sudoers. Нет многих общих множителей:

  1. Ubuntu использует sudo группа для предоставления административных привилегий в обеих системах.
  2. Оба PAM поддержки, таким образом, конфигурация PAM может влиять на обоих.

В частности, конфигурация 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
1
ответ дан 1 October 2019 в 03:34

Другие вопросы по тегам:

Похожие вопросы: