在我们的环境中,我们不会将 Linux 机器加入 Microsoft 域。但是,我们确实设置了 Kerberos。只要有一个同名的本地帐户,我们就可以使用 AD 凭据登录机器。但是,当我使用 sudo 时,它只接受我的本地凭据。我如何在 sudo 中使用我的 AD 密码?谢谢。
答案1
似乎是 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 的模块。
PAMsudo
配置文件包含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 可能非常强大,但我花了一点时间才理解它。Red Hat 的文档在处理 PAM 问题时帮助了我很多。