sudo命令来自英文词组“super user do”的缩写,中文译为“超级用户才能干的事”,其功能是用于授权普通用户执行管理员命令。使用su命令变更用户身份虽然好用,但是需要将管理员的账户密码告诉他人,总感觉心里不踏实,幸好有了sudo服务。

使用sudo服务可以授权某个指定的用户去执行某些指定的命令,在满足工作需求的前提下尽可能少地放权,保证服务器的安全。配置sudo服务可以直接编辑配置文件/etc/sudoers,亦可以执行visudo命令进行设置,一切妥当后普通用户便能够使用sudo命令进行操作了。

语法格式:sudo [参数] 命令

常用参数:

-A 使用图形化界面读取用户密码值
-b 将要执行的命令放在后台执行
-E 保留用户原本的环境变量信息
-h 显示帮助信息
-H 将用户的家目录环境变量设置为/root
-i 模拟用户的初始登录过程
-k 下次强制验证当前用户的密码值
-K 删除用户的缓存信息,让密码有效期立即结束
-p 设置需要密码验证时的提示语
-r 设置新的SELinux映射角色
-s 设置默认调用的Shell终端
-t 设置新的SELinux安全上下文类型
-u 设置使用那位用户的身份执行
-v 设置需要验证当前用户的密码
-v 更新用户的缓存信息,让密码有效期延长5分钟
-V 显示版本信息

参考示例

查看当前用户有哪些被sudo服务授权的命令:

[linuxprobe@linuxcool ~]$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for linuxprobe: 此处输入当前用户的密码
Matching Defaults entries for linuxprobe on localhost:
!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 linuxprobe may run the following commands on localhost:
(ALL) ALL

使用某个被sudo服务允许的用户身份来执行管理员的重启命令:

[root@linuxcool ~]# sudo -u linuxprobe "reboot"

使用当前用户身份,基于sudo命令来执行管理员的重启命令:

[root@linuxcool ~]# sudo reboot
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。