sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。
sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。
语法格式:sudo [参数]
常用参数:
-v | 因为 sudo 在第一次执行时或是在 N分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码 |
-k | 强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) |
-b | 将要执行的指令放在背景执行 |
-p | prompt 可以更改问密码的提示语,其中 %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