命令介绍
命令:sudo 系统管理者的身份执行指令
用法:
- sudo -h | -K | -k | -V
- usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
- usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
- usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] []
- usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file …
命令选项
[root@fp-21 ~]# sudo --help
Options:
-A, --askpass # 使用帮助程序提供密码
-b, --background # 在后台运行命令
-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 # 版本信息
命令实例
# 普通用户访问文件
[jack@fp-21 ~]$ vim /etc/shadow
……
"/etc/shadow" [Permission Denied]
[jack@fp-21 ~]$ sudo vim /etc/shadow
root:$6$pDOdeLDhENVJTmqZ$X/l9NjdDFJ0qi06JpZZZ9msGmZtMS1yiF1KGlPWcsyARzZuHjtkeaoPyGhmjQ31WN.HSC4/KhK0HI5.IzaTOd.::0:99999:7:::
……
# 用户运行命令(或编辑文件)作为指定的用户名或ID
[jack@fp-21 ~]$ sudo -u tom mkdir /tmp/test_d
[jack@fp-21 ~]$ ll /tmp/ |grep test_d
drwxr-xr-x. 2 tom tom 6 Feb 17 05:59 test_d
# 列出用户权限或检查特定命令
[jack@fp-21 ~]$ sudo -l
Matching Defaults entries for jack on fp-21:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME
HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User jack may run the following commands on fp-21:
(ALL) NOPASSWD: ALL
注:
想要使用 sudo 命令,需要先将用户添加到配置文件中,我这里使 jack,添加到最后一行
[root@fp-21 ~]# visudo
……
jack ALL=(ALL) NOPASSWD: ALL
保存退出,即可
[jack@fp-21 ~]$ sudo -l
Matching Defaults entries for jack on fp-21:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME
HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User jack may run the following commands on fp-21:
(ALL) NOPASSWD: ALL