Linux命令之 sudo命令
warning:
这篇文章距离上次修改已过1792天,其中的内容可能已经有所变动。
以系统管理者的身份执行命令。而不需要切换用户。
仅限在
/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

列出目前的权限
sudo -l

以管理员权限执行上一条命令
sudo !!

以特定用户身份进行编辑文本
sudo -u mysql vim test