允许 AD 组 SUDO

允许 AD 组 SUDO

我正在将一些 Fedora 20 工作站添加到我们的 Windows 2003 域中。我已成功使用盒子加入域,并且可以使用域帐户登录。

现在我试图允许Enterprise Admins使用默认的 AD 组SUDO,但是无论我做什么,似乎都找不到该组(或者至少它告诉我我的用户帐户不在 sudoers 文件中)

OU的结构(默认):

  • 本地域名
    • 内置
    • 电脑
    • DCOM-用户
    • 域控制器
    • 外国安全负责人
    • 公司名称
      • 管理
      • 会计
      • 管理员
      • 系统账户
      • 客户服务
      • 仓库
    • 用户

我使用realmdsssd加入域,并尝试允许 sudo 位于 OU 下的组Users,但也想从CompanyName --> AdminsOU/子组添加一些组。

我目前正在尝试这个但没有运气(在 /etc/sudoers 中)

%MYDOMAIN\\Enterprise^Admins ALL=(ALL) ALL

我也尝试过一些变体,例如:

%MYDOMAIN\\Users\Enterprise^Admins ALL=(ALL) ALL
%Enterprise^[email protected] ALL=(ALL) ALL

等等...似乎没有任何作用。即使重新启动后,和/或systemctrl restart sssd.

如果我明确地将我的域帐户添加到 /etc/sudoers 文件中,那么它就没有问题。

[email protected] ALL=(ALL) ALL

有一些资源似乎表明应该可以将 AD 组添加到 sudoers,但是到目前为止,它们都没有为我工作:

http://funwithlinux.net/2013/09/join-fedora-19-to-active-directory-domain-realmd/

https://serverfault.com/questions/387950/how-to-map-ad-domain-admins-group-to-ubuntu-admins

https://help.ubuntu.com/community/LikewiseOpen

答案1

在您询问几个月后,但正确的答案是您从组中删除所有域信息。所有信息均由SSSD自动设置和提取。

我在你的一些例子中看到的唯一缺陷是你用 ^ 转义了空格。

AD 组Enterprise Admins将有一个以 sudoers 开头的行

%Enterprise\ Admins

例如,如果您的域名是example.com,那么 sudoers 行看起来像

%Enterprise\ [email protected] ALL=(ALL) ALL

您可以通过在组中调用 getent 来验证这一点。

getent group Enterprise\ Admins

答案2

winbindsssd以与 NIS 网络组相同的方式导入 AD 组。因此,文件中的组定义/etc/sudoers需要以 开头+,而不是%.此外,包含空格的名称应该用双引号引起来,或者将每个空格指定为\x20

%sudo              ALL = (ALL) ALL
+"domain users"    ALL = (ALL) ALL
+domain\x20admins  ALL = (ALL) NOPASSWD: ALL

答案3

如果您使用 visudo 管理 sudo,无论是通过 PAM 还是只是本地 sudoers 文件,那么您都可以使用%GroupName.

如果您使用 sudo-ldap,那么您必须将 AD 组配置为被视为网络组并使用+NetGroupName.我通过启用 NFS 角色并创建与常规 AD 组搭配的网络组来实现此目的:

New-NfsNetgroup -NetGroupName MyNetGroup -AddMember MyMember

*注意 MyMember 不是 FQDN,只是主机名

我还使用 sssd 而不是 PAM,因此您必须刷新缓存才能sss_cache -E获取新的网络组名称。

验证:

getent netgroup MyNetGroup

应该看到:

MyNetGroup    (MyMember,-,-)

我没有在 ADDC 上启用 NFS 共享,安装 NFS 角色允许在 Netgroup 命名空间上创建。

答案4

我认为 sudo 无法识别 AD windows 组。

相关内容