Sudo

查看了man sudo,也在网上找了些资料。但是感觉说的还是不够全或是准确,不能解答自己所有的疑问。

自己结合这些资料,亲自动手实验后总结了如下心得。

 

Sudo的作用,资料太多了,就不详细说了。简单地说,主要作用就是有root权限的admin可以不告诉普通用户root的密码,而能让该用户使用root权限执行部分或者所有的命令或是操作。怎么做到这点呢?就是在/etc/sudoers中设置普通用户或是组的权限。

 

设置权限的基本规则如下:

授权用户 主机=命令动作

这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用()号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,但这些可以省略

 

授权用户主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)][是否需要密码验证][命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]......

 

注解:

凡是[]中的内容,是可以省略;命令与命令之间用,号分隔;通过本文的例子,可以对照着看哪些是省略了,哪些地方需要有空格。

 

在[(切换到哪些用户或用户组)],如果省略,则默认为root用户;如果是ALL,则代表能切换到所有用户。如果是否需要密码验证条件省略,则默认为需要输入验证密码;如果为NOPASSWD,则不用输入密码。

 

上述公式成立的条件是每个命令至少要包含一个要切换到的用户()或是是不需要验证密码;否则的话,如果要切换的用户和是否需要密码验证都省略的话,该命令就会follow它之前的一个命令的这些条件(切换的用户和是否需要密码验证)

如:

debian  ALL=(debian)/bin/cat,/bin/more,(root)NOPASSWD: /usr/bin/vi

/bin/more的授权结果就是:(debian)/bin/morefollow它前面的/bin/cat的条件。

 

我们设置完/etc/sudoers之后,可以切换到你想要的用户下去查看该该用户能用sudo跑的命令的详细信息。

如上配置,切换到debian用户下,可以用 sudo-l查看到如下结果:

Userdebian may run the folowing commands on this host:

(debian)/bin/cat, (debian) /bin/more, (root) NOPASSWD: /usr/bin/vi

 

所以说,sudo -l真是一个好命令啊。如果你改完/etc/sudoer后不确定的话,就可以用sudo -l查看下授权之后的详细结果。呵呵

 

Sudo选项

-u<用户> 以指定的用户作为新的身份。若不加上此参数,则默认以root作为新的身份。

-v  延长密码有效期限5分钟。

 

如果用户使用sudo时,必须先输入密码,那么输入密码之后有5分钟的有效期限,超过期限则必须重新输入密码。也就是说在这5分钟之内,即使是sudo执行需要输入密码的命令也不用再输入密码了。但是如果在这五分钟之内你重新开一个terminal执行sudo命令的话,那还是需要重新输入密码的(如果需要密码)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值