djs*_*dog 4 linux su active-directory opensuse sudo
我正在使用 openSUSE 11.4,它在 Yast 中内置了 Active Directory 配置(它为您完成所有 pam_winbind、Kerberos、nss、Samba 客户端的工作),并且我可以成功地针对我的 AD 域进行身份验证。
我创建了一个名为 LinuxAdmins 的 AD 组,我希望该组中的人能够在没有 root 密码的情况下在某些 Linux 服务器上使用 su 或在这些机器上使用自己的密码进行 sudo。
openSUSE 配置 AD 的方式是设置用户名和域前缀。所以我的用户名是 MYDOMAN\djsumdog。如果我尝试将以下任一行添加到 sudoers 文件中,我仍然无法使用我的用户执行 sudo。我不断收到“MYDOMAIN\djsumdog 不在 sudoers 文件中。将报告此事件。” 我已经为用户名和组名尝试了单斜杠和双斜杠。
%MYDOMAIN\LinuxAdmins ALL=(ALL) ALL
MYDOMAIN\djsumdog ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
我知道在我的 Gentoo 机器上,/etc/pam.d/su 中的以下行允许 wheel 组中的用户在没有密码的情况下使用 su:
auth sufficient pam_wheel.so use_uid trust
Run Code Online (Sandbox Code Playgroud)
但这似乎不适用于 openSUSE(即使是本地用户),更不用说 AD 用户了。我也尝试使用 pam_winbind.so 模块:
#%PAM-1.0
auth sufficient pam_rootok.so
auth include common-auth
auth sufficient pam_winbind.so require_membership_of=MYDOMAIN\\LinuxAdmins
account sufficient pam_rootok.so
account include common-account
password include common-password
session include common-session
session optional pam_xauth.so
Run Code Online (Sandbox Code Playgroud)
但我认为这不会起作用,因为 require_membership_of 参数似乎用于针对整个机器的主要身份验证。
我知道使用用户密码的 sudo 更安全,但如果我可以通过验证用户的 AD 组来使 su 或 sudo 工作,我会很高兴。
根据 Hadyman5 的评论,我运行了以下命令:
id MYDOMAIN\\djsumdog
Run Code Online (Sandbox Code Playgroud)
...并看到我的组实际上是 MYDOMAIN\linuxadmins,全部小写。然后我将以下内容添加到我的 sudo 配置中:
%MYDOMAIN\\linuxadmins ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
并且 sudo 现在可以与该组中的用户一起正常工作。
归档时间: |
|
查看次数: |
16143 次 |
最近记录: |