Linux命令之 sudo命令
warning:
这篇文章距离上次修改已过1978天,其中的内容可能已经有所变动。
以系统管理者的身份执行命令。而不需要切换用户。
仅限在
/etc/sudoers中记录的用户使用。命令语法
sudo -h | -K | -k | -V
sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [<command>]
sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...附加参数
| 参数 | 说明 |
|---|---|
| -A, --askpass | 使用助手程序进行密码提示 |
| -b, --background | 在后台运行命令 |
| -C, --close-from=num | 关闭所有 >= num 的文件描述符 |
| -E, --preserve-env | 在执行命令时保留用户环境 |
| --preserve-env=list | 保留特定的环境变量 |
| -e, --edit | 编辑文件而非执行命令 |
| -g, --group=group | 以指定的用户组或 ID 执行命令 |
| -H, --set-home | 将 HOME 变量设为目标用户的主目录。 |
| -h, --help | 显示帮助消息并退出 |
| -h, --host=host | 在主机上运行命令(如果插件支持) |
| -i, --login | 以目标用户身份运行一个登录shell;可同时指定一条命令 |
| -K, --remove-timestamp | 完全移除时间戳文件 |
| -k, --reset-timestamp | 无效的时间戳文件 |
| -l, --list | 列出用户权限或检查某个特定命令;对于长格式,使用两次 |
| -n, --non-interactive | 非交互模式,不提示 |
| -P, --preserve-groups | 保留组向量,而非设置为目标的组向量 |
| -p, --prompt=prompt | 使用指定的密码提示 |
| -r, --role=role | 以指定的角色创建 SELinux 安全环境 |
| -S, --stdin | 从标准输入读取密码 |
| -s, --shell | 以目标用户运行 shell;可同时指定一条命令 |
| -t, --type=type | 以指定的类型创建 SELinux 安全环境 |
| -T, --command-timeout=timeout | 在达到指定时间限制后终止命令 |
| -U, --other-user=user | 在列表模式中显示用户的权限 |
| -u, --user=user | 以指定用户或 ID 运行命令(或编辑文件) |
| -V, --version | 显示版本信息并退出 |
| -v, --validate | 更新用户的时间戳而不执行命令 |
| -- | 停止处理命令行参数 |
常用范例
用特权执行命令
sudo touch test指定用户执行命令
sudo -u root touch test
可以发现文件所有者是root列出目前的权限
sudo -l
sudo命令相关的信息以管理员权限执行上一条命令
sudo !!
以管理员权限执行上一条命令以特定用户身份进行编辑文本
sudo -u mysql vim test 