sudo命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sudo命令相关的知识,希望对你有一定的参考价值。

sudo命令
用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

语法
sudo(选项)(参数)
选项
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
参数
指令:需要运行的指令和对应的参数。

visudo命令,#编辑sudo配置文件

序号 用户或组 机器=授权角色 可执行的命令(ALL代表所有)
91 root ALL=(ALL) ALL 命令需要是全路径,多个用","逗号隔开

# Allow root to run any commands anywhere
root ALL=(ALL) ALL
nsd01 ALL=(ALL) /bin/sed #授权nsd01的sed权限

# Host_Alias FILESERVERS = fs1, fs2 #主机别名,fs1,fs2代表两台主机
# User_Alias ADMINS = jsmith, mikem #用户别名,可以授权组,但需要在组前加%号
Cmnd_Alias NETWORKING = /sbin/route #命令别名

[[email protected] ~]#visudo -c #修改完成后要测试语法

[[email protected] ~]# which sed #用which查看命令的全路径
/bin/sed

[[email protected] ~]$ sudo -l #查看nsd01用记的sudo的权限
User nsd01 may run the following commands on this host:
(ALL) /bin/sed

[[email protected] ~]# ll /var/db/sudo/ #查看用户的时间戳
total 4
drwx------. 2 root nsd01 4096 Mar 18 16:14 nsd01

关于sudo权限最小化配置,请参考:http://blog.51cto.com/yehaixiao/2088836

以上是关于sudo命令的主要内容,如果未能解决你的问题,请参考以下文章

linux常用命令:sudo 命令

linux su和sudo命令的区别

linux sudo时说找不到cd命令, 怎么解决

ubuntu中的sudo命令

Linux命令-sudo

linux su和sudo命令的区别