集中的 sudo sudoers 文件?

集中的 sudo sudoers 文件?

我是几台不同服务器的管理员,目前每台服务器都有不同的 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 中设置。

http://www.gratisoft.us/sudo/man/sudoers.ldap.html

答案4

您可能需要考虑易于实施和安装的 Likewise 解决方案(openlikewise 是免费的),有关 sudoers 策略的具体信息,请查看:

http://www.likewise.com/resources/documentation_library/manuals/lwe/group-policy-guide.html#TestSudo

相关内容