在centos6.8中,即使设置默认桌面背景也需要root密码,然后我在公司500台笔记本电脑中使用sudo功能。
james01 ALL=(ALL) NOPASSWD: sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool,/bin/rpm, /usr/bin/up2date, /usr/bin/yum
1.如何避免用户编辑/sbin/iptables? sudoers 没有语法!/sbin/iptables
2.如何为 500 台笔记本电脑设置不同的用户名,例如 robin01、marry01?
3.是否有 sudoers 文件作为控制用户权限的经典示例?
答案1
您可以使用 '!' 来否定命令、用户等。但是,您必须小心。sudoers 的手册页带有此警告;
“!”运算符的限制 使用“!”运算符从 ALL 中“减去”命令通常无效。用户可以通过将所需命令复制到其他名称然后执行该命令来轻松规避此问题。例如:bill ALL = ALL, !SU, !SHELLS 这实际上并不能阻止 bill 运行 SU 或 SHELLS 中列出的命令,因为他可以简单地将这些命令复制到其他名称,或者使用编辑器或其他程序的 shell 转义。因此,这些限制最多只能被视为建议(并通过政策强化)。通常,如果用户拥有 sudo ALL,那么无论用户规范中的“!”元素如何,都没有什么可以阻止他们创建自己的程序以获得 root shell(或制作自己的 shell 副本)。
您的 iptables 示例很好地说明了这一点。如果您不授予全部,那么你必须明确授予命令或命令集权限,以允许他们编辑 iptables。你不必否定任何命令除非你使用全部。否则,阻止这种情况发生将极具挑战性。
为什么不将策略应用于组,而不是为每 500 个用户设置策略?如果每个人都在一个共同的组中,您可以使用“%”来表示组。查看 /etc/sudoers 中 wheel 组的示例。
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
答案2
如果您必须在 500 台不同的笔记本电脑上进行设置。您可以使用一些自动化工具。我建议您使用“Ansible”。这是一个无客户端工具,您只需要 ssh 凭据即可。试试看,它确实会让您的工作变得更有条理。
如果你愿意,我可以为你编写脚本。如果感兴趣请发邮件。很高兴能帮到你。