我是几台不同服务器的管理员,目前每台服务器都有不同的 sudoers 文件。这有点难以控制,因为我经常需要授予某人使用 sudo 执行某些操作的权限,但只能在一台服务器上完成。有没有一种简单的方法可以在我的中央服务器上编辑 sudoers 文件,然后通过 SFTP 或类似方式将其轻松分发到其他服务器?
主要想知道其他系统管理员如何解决这个问题,因为例如 sudoers 文件似乎无法通过 NIS 进行远程访问。
操作系统是 SUSE Linux Enterprise Server 11 64 位,但这没关系。
编辑:目前,每台机器都有相同的 sudoers 文件。
EDIT2:接受的答案的评论与我实际所做的最接近。我现在正在使用 SVN 支持的 puppet 安装,经过几次头痛之后,它运行得很好。
答案1
我最不想做的事情就是创建一个单独的 sudoers 文件,就像 Dave 建议的那样。如果你有很多机器,而且只有细微的差别(通常情况下),你真的不想这样做。它会产生很多开销。
你真正想做的是创造一sudoers 文件。在该 sudoers 文件中,您可以为要应用特定策略的系统组定义 Host_Aliases。您还可以创建 User_Aliases 等。如果操作正确,这将为您带来巨大的好处,因为一文件进行编辑,这样就很容易看到什么适用于哪里,而不必担心不同版本的 sudoers 文件会意外部署到不同的机器上。
sudo 的新版本甚至支持 /etc 中的 sudoers.d 目录,这可能也有帮助,但我还没有尝试过。
答案2
步骤 1. 设置 ldap 服务器并配置所有机器通过 ldap 对用户和组进行身份验证
步骤 2. 在 ldap 中创建一个主 sudoers 组,例如 yourcompany-sudoers。在每台机器上的 /etc/sudoers 文件中授予该组 sudo 权限(带密码)。
步骤3.在ldap中创建一个sudoers-machinename组,并将该组添加到相应机器上的/etc/sudoers。
通过这三个步骤,您无需在机器安装后编辑 /etc/sudoers 文件,并且还可以获得许多其他好处
为了获得额外的效果
步骤 4. 设置 puppet、cfengine、chef 或类似程序,并自动将模板化的 sudoers 文件部署到每台机器。
答案3
/etc/sudoers 也可以直接替换为对集中式 LDAP 服务器的调用。您通常在本地计算机上设置的所有权限和设置都会在 LDAP 中设置。
答案4
您可能需要考虑易于实施和安装的 Likewise 解决方案(openlikewise 是免费的),有关 sudoers 策略的具体信息,请查看:
http://www.likewise.com/resources/documentation_library/manuals/lwe/group-policy-guide.html#TestSudo