Sudo安全测试总结
什么是sudo
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如reboot等等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
2、原理
我们用一个实例来详细解释/etc/sudoers文件的配置语法,请看下面的例子:
test ALL=(root) /opt/sudobin2/commoninstall.sh
第一栏规定它的适用对象:用户或组,就本例来说,它是用户ossadm。此外,因为系统中的组和用户可以重名,要想指定该规则的适用对象是组而非用户的话,组对象的名称一定要用百分号%开头。
第二栏指定该规则的适用主机。当我们在多个系统之间部署sudo环境时,这一栏格外有用,这里的ALL代表所有主机。但是,对于桌面系统或不想将sudo部署到多个系统的情况,这一栏就换成相应的主机名。
第三栏的值放在括号内,指出第一栏规定的用户能够以何种身份来执行命令。本例中该值设为root,这意味着用户test能够以root用户的身份来运行后面列出的命令。该值也可以设成通配符ALL,test便能作为系统中的任何用户来执行列出的命令了。
最后一栏(即/opt/sudobin2/commoninstall.sh)是命令表,这些命令能被第一栏规定的用户以第三栏指出的身份来运行它们。本例中,该配置允许test作为超级用户运行/opt/sudobin2/commoninstall.sh这个命令,这里列出的命令一定要使用绝对路径。此外,sudo命令的另一个便捷的功能,是它能够指出哪些命令在执行时不需要输入密码。这很有用,尤其是在非交互式脚本中以超级用户的身份来运行某些命令的时候。为此,在命令行前边加上NOPASSWD:属性即可,即
test ALL=(root) NOPASSWD:/opt/sudobin2/commoninstall.sh。
- 点赞
- 收藏
- 关注作者
评论(0)