充分发挥 sudo 的作用
2009-11-26 00:00:00 来源:WEB开发网如果有许多用户条目,在添加或删除条目时会耗时很长。对于这种情况,好做法是对用户进行分组。可以把用户直接分组在一起,这些组是有效的 AIX 组。
现在详细讨论这两种方法。
包含文件
在大型企业环境中,维护 sudoers 文件是一项重要且必须经常执行的任务。简化这项任务的一个解决方案是重新组织 sudoers 文件。一种做法是提取出静态或可重用的条目,它们在每台机器上都运行相同的命令。与审计/安全或 storix 备份或一般性能报告一样,现在可以对 sudo 使用 include 指令。主 sudoers 文件可以包含本地条目,包含文件包含静态条目,所以很少需要编辑。在调用 visudo 时,它会扫描 sudoers。当看到 include 条目时,它会扫描此文件,然后返回到主 sudoers 文件继续扫描。在从主 sudoers 文件退出 visudo 时,它会进入包含文件进行编辑。退出包含文件之后,返回到 AIX 提示。可以有多个包含文件,但是我不认为有必要这么做。
假设我们的辅助 sudoers 文件名为 sudo_static.<hostname>。在本文的示例中,使用的主机名是 rs6000。在主 sudoers 文件中,设置以下条目:
#include /etc/sudo_static.rs6000
接下来,在 /etc/sudo_static.rs6000 文件中添加一些条目。不必设置所有 sudoers 指令或小节。如果这个文件包含不必要的条目,就不要包含它们。例如,我的包含文件只包含以下文本。
可以使用 %h 替代实际的主机名:
#include /etc/sudo_static.%h.
我个人不使用这种方法,因为我遇到过返回的主机名包含额外字符的情况。这个问题在 sudo 1.7.2 p1 中已经纠正了。
bravo rs6000 = (root) NOPASSWD: /usr/opt/db2_08_01/adm/db2licd -end
bravo rs6000 = (root) NOPASSWD: /usr/opt/db2_08_01/adm/db2licd
bravo rs6000 = (db2inst) NOPASSWD: /home/db2inst/sqllib/adm/db2start
bravo rs6000 = (db2inst) NOPASSWD: /home/db2inst/sqllib/adm/db2stop force
更多精彩
赞助商链接