sudo 命令
sudo 许一个被批准的用户以超级用户或者另外一个用户的身份去执行命令
sudo 默认的安全策略使用/etc/sudoers 文件进行配置
安全策略决定了一个用户运行 sudo 的权限,该策略可能要求用户认证它自己(密码或者其他的身份认证机制),如果需要身份认证则用户必须在配置的时间内输入用户的密码,这个限制是特定于策略的,对于 sudoers 的安全策略的密码提示超时时间默认是 5 分钟(也就是你必须在 5 分钟内输入密码)。
安全策略也提供了凭据缓存功能,允许用户在有效期内再次运行 sudo 命令而不需要重复认证,sudoers 策略将凭据缓存 5 分钟(可以在 sudoers 中覆盖默认配置),通过运行 sudo -v 选项(不带命令),用户可以更新缓存的凭据
语法
sudo [-D level] -h | -K | -k | -V
sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] command
选项:
- -u user 以指定用户身份运行命令, 不使用该参数表示以 root 的身份执行指令
- -g group 以指定的用户组执行命令
- -e 编辑文件而非执行命令
- -V 显示版本信息并退出
- -v 更新缓存的凭据,因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会要求密码认证,这个参数是重新做一次确认
- -l 显示出自己(执行 sudo 的使用者)的权限
- -k 将会强迫使用者在下一次执行 sudo 时要求密码认证
- -b 在后台运行命令
- -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
- -s [command] 以目标用户身份运行 shell
- -H 将 HOME 变量设为目标用户的主目录
- -h 显示帮助消息并退出
- command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
实例
sudo 命令使用
$ sudo ls #以管理员身份执行命令
[sudo] password for user:
指定用户执行命令
# sudo -u userb ls -l
以 root 权限执行上一条命令
$ sudo !!
以特定用户身份进行编辑文本
$ sudo -u devuser vi index.html
//以devuser用户身份编辑index.html 文件
列出目前的权限
sudo -l