Kerberos

如何強制 sudo 在 RHEL6 上接受使用者的 AD 密碼

  • March 5, 2014

在我們的環境中,我們不會將 Linux 機器加入 Microsoft 域。但是,我們確實設置了 Kerberos。只要有同名的本地帳戶,我們就可以使用我們的 AD 憑據登錄這些框。但是,當我使用 sudo 時,它只接受我的本地憑據。如何使用 sudo 使用我的 AD 密碼?謝謝。

似乎這是一個 PAM 配置問題。我在我們的 Linux 伺服器上有一個類似的設置——針對我們的 AD DC 的 Kerberos 身份驗證。

以下是用於比較的相關 PAM 文件。

首先,配置依賴system-auth的 PAM 配置:sudo

# cat /etc/pam.d/system-auth
#%PAM-1.0
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_krb5.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so

如您所見,這包括pam_krb5.so用於 Kerberos 的模組。

sudoPAM 配置文件包括system-auth並如下所示:

# cat /etc/pam.d/sudo
#%PAM-1.0
auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so revoke
session    required     pam_limits.so

# cat /etc/pam.d/sudo-i
#%PAM-1.0
auth       include      sudo
account    include      sudo
password   include      sudo
session    optional     pam_keyinit.so force revoke
session    required     pam_limits.so

PAM 可能非常強大,但我花了一點時間才明白它的意思。在處理 PAM 問題時,Red Hat 的文件幫助了我很多。

引用自:https://serverfault.com/questions/578755