如何在 RHEL6 上强制 sudo 接受用户的 AD 密码

如何在 RHEL6 上强制 sudo 接受用户的 AD 密码

在我们的环境中,我们不会将 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 问题时帮助了我很多。

相关内容