Sudo安全测试总结

举报
放星星的羊 发表于 2017/12/22 16:43:01 2017/12/22
【摘要】 什么是sudosudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如reboot等等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。2、原理 我们用一个实例来详细解释/etc/sudoers文件的配置语法,请看下面的例子:test ALL=(root) /opt/sud

什么是sudo

sudolinux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如reboot等等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

2、原理

    我们用一个实例来详细解释/etc/sudoers文件的配置语法,请看下面的例子:

test ALL=(root) /opt/sudobin2/commoninstall.sh

第一栏规定它的适用对象:用户或组,就本例来说,它是用户ossadm。此外,因为系统中的组和用户可以重名,要想指定该规则的适用对象是组而非用户的话,组对象的名称一定要用百分号%开头。

第二栏指定该规则的适用主机。当我们在多个系统之间部署sudo环境时,这一栏格外有用,这里的ALL代表所有主机。但是,对于桌面系统或不想将sudo部署到多个系统的情况,这一栏就换成相应的主机名。

第三栏的值放在括号内,指出第一栏规定的用户能够以何种身份来执行命令。本例中该值设为root,这意味着用户test能够以root用户的身份来运行后面列出的命令。该值也可以设成通配符ALLtest便能作为系统中的任何用户来执行列出的命令了。

最后一栏(即/opt/sudobin2/commoninstall.sh)是命令表,这些命令能被第一栏规定的用户以第三栏指出的身份来运行它们。本例中,该配置允许test作为超级用户运行/opt/sudobin2/commoninstall.sh这个命令,这里列出的命令一定要使用绝对路径。此外,sudo命令的另一个便捷的功能,是它能够指出哪些命令在执行时不需要输入密码。这很有用,尤其是在非交互式脚本中以超级用户的身份来运行某些命令的时候。为此,在命令行前边加上NOPASSWD:属性即可,即

test ALL=(root) NOPASSWD:/opt/sudobin2/commoninstall.sh


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。