集中 sudo sudoers 文件?

Ste*_*erg 7 linux sudo

我是几台不同服务器的管理员,目前每台服务器上都有不同的 sudoers 文件。这有点失控,因为我经常需要授予某人使用 sudo 执行某些操作的权限,但它只能在一台服务器上完成。是否有一种简单的方法可以在我的中央服务器上编辑 sudoers 文件,然后通过 SFTP 或类似的方式以简单的方式将其分发到其他服务器?

主要是想知道其他系统管理员如何解决这个问题,因为 sudoers 文件似乎无法通过 NIS 远程访问,例如。

操作系统是 SUSE Linux Enterprise Server 11 64 位,但应该没有关系。

编辑:现在,每台机器都有相同的 sudoers 文件。

EDIT2:接受的答案的评论最接近我实际进行的操作。我现在正在使用 SVN 支持的 puppet 安装,经过几次头痛,它运行良好。

wzz*_*zrd 8

我最不想做的事情是创建一个单独的 sudoers 文件,就像 Dave 建议的那样。如果您有很多机器,并且只有细微的差异(通常是这种情况),那么您真的不想要这个。它会产生大量的开销。

您真正想做的是创建一个sudoers 文件。在该 sudoers 文件中,您可以为要应用特定策略的系统组定义 Host_Aliases。您还可以制作 User_Aliases 等等。做得对,通过编辑一个文件为您带来巨大的好处,因此很容易看到适用于何处的内容,您不必担心不同版本的 sudoers 文件意外部署在不同的机器上。

新版本的 sudo 甚至支持 /etc 中的 sudoers.d 目录,这可能也有帮助,但我还没有尝试过。

  • 这个接受的答案没有解决如何集中编辑和分发文件的问题。请在答案中包含完整的解决方案。 (2认同)

Dav*_*ney 7

步骤 1. 设置 ldap 服务器并配置您的所有机器以通过 ldap 对用户和组进行身份验证

步骤 2. 在 ldap 中创建一个 master sudoers 组,比如 yourcompany-sudoers。在每台机器上的 /etc/sudoers 文件中授予该组 sudo 权限(使用密码)。

步骤 3. 在 ldap 中创建一个 sudoers-machinename 组,将该组添加到相应机器上的 /etc/sudoers。

通过这三个步骤,您无需在安装机器后编辑 /etc/sudoers 文件,您还可以获得许多其他好处

为了额外的效果

步骤 4. 设置 puppet、cfengine、chef 或类似工具,并自动将模板化的 sudoers 文件部署到每台机器。

  • 大多数具有 pam 支持的 UNIX 都可以支持 ldap 作为身份验证源,因此您只需要使用 pam 支持进行编译 (2认同)

mfa*_*ver 6

/etc/sudoers 也可以直接替换为对集中式 LDAP 服务器的调用。您通常在本地计算机上设置的所有权限和设置都在 LDAP 中设置。

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