更新多个 sudoers 文件

更新多个 sudoers 文件

我们有多个 Linux 服务器,它们通过 Active Directory 域进行身份验证。对于 AD 中的组,我想添加允许使用 sudo 以 root 身份运行的命令列表。我显然可以通过 ssh 登录到每台计算机并更新 sudoers 文件 - 但这需要一些时间。此外,不允许 root 登录。因此,无密码登录仅适用于非 root 用户。

有没有一种快速的方法可以一次更新每台 Linux 计算机的 sudoers 文件?我正在考虑使用具有一些系统管理功能的 Perl 或 Python 脚本。

更新:感谢 veroteq7 和 Shane Madden。我曾经考虑过部署 cfengine,但目前我们还没有运行它。我们决定使用 LDAP 是最好的解决方案。我在为 sudo 导入 LDIF 架构 schema.ActiveDirectory 时遇到错误。错误是第 144 行的“参数不正确”。

这是从第 144 行开始的内容:

dn: CN=sudoRole,CN=Schema,CN=Configuration,DC=X
changetype: add
objectClass: top
objectClass: classSchema
cn: sudoRole
distinguishedName: CN=sudoRole,CN=Schema,CN=Configuration,DC=X
instanceType: 4
possSuperiors: container
possSuperiors: top
subClassOf: top
governsID: 1.3.6.1.4.1.15953.9.2.1
mayContain: sudoCommand
mayContain: sudoHost
mayContain: sudoOption
mayContain: sudoRunAs
mayContain: sudoRunAsUser
mayContain: sudoRunAsGroup
mayContain: sudoUser
rDNAttID: cn
showInAdvancedViewOnly: FALSE
adminDisplayName: sudoRole
adminDescription: Sudoer Entries
objectClassCategory: 1
lDAPDisplayName: sudoRole
name: sudoRole
schemaIDGUID:: SQn432lnZ0+ukbdh3+gN3w==
systemOnly: FALSE
objectCategory: CN=Class-Schema,CN=Schema,CN=Configuration,DC=X
defaultObjectCategory: CN=sudoRole,CN=Schema,CN=Configuration,DC=X

我使用的命令是:

ldifde -i -f schema.ActiveDirectory -c dc=X dc=DOMAINNAME,dc=LOCAL

更新2:我创建了一个新的问题。感谢大家的建议。

答案1

为什么不废弃/etc/sudoers并使用 AD(轻量级 LDAP)作为你的 sudoers 商店?——更多信息这里

您已经针对 AD 进行了身份验证,因此这只是下一个合乎逻辑的步骤,并为您提供了一个方便、集中的地方来处理身份验证授权。

答案2

配置管理工具怎么样? 木偶厨师CF引擎, ETC?

答案3

您可以在 sudoers 中定义组...并从中央身份验证存储库(如 Active Directory)中提取这些组。我喜欢将域管理员放在我的 sudoers 文件中。这样可以省去很多麻烦。

答案4

嗯!这很麻烦。另一种方法是使用 cssh 命令,这样您就可以一次打开多个窗口。如果您在小窗口(白色空白窗口)上键入一些内容,您会注意到您的打字会传播到所有窗口中。我建议备份您的 suoders 文件并使用 visudo 命令来更新 sudoers。如果任何 sudoer 文件不喜欢,visudo 会告诉您更正该文件。

干杯

相关内容