sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。

sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。

语法格式:sudo [参数]

常用参数:

-v因为 sudo 在第一次执行时或是在 N分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
-k强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b将要执行的指令放在背景执行
-pprompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称,%h 会显示主机名称
-s执行环境变数中的SHELL 所指定的shell ,或是 /etc/passwd 里所指定的 shell
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

参考实例

切换到root用户:

[root@linuxcool ~]# sudo su

指定用户执行命令:

[root@linuxcool ~]# sudo -u userb ls -l 

以root权限执行上一条命令:

[root@linuxcool ~]# sudo !!

列出目前的权限:

[root@linuxcool ~]# sudo -l 

列出 sudo 的版本资讯:

[root@linuxcool ~]# sudo -V
Author

这篇优质的内容由TA贡献而来

王婷

软件开发工程师,信息科学与工程专业(硕士)