系统管理 · 2022年02月20日 0

sudo命令 – 以系统管理者的身份执行指令

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@anycode ~]# sudo su ``` 指定用户执行命令: ``` [root@anycode ~]# sudo -u userb ls -l ``` 以root权限执行上一条命令: ``` [root@anycode ~]# sudo !! ``` 列出目前的权限: ``` [root@anycode ~]# sudo -l ``` 列出 sudo 的版本资讯: ``` [root@anycode ~]# sudo -V ```