sudo命令是用来提权的,我们知道,使用su命令可以让普通用户切换到root账号,但前提是是你必须知道root的密码,那么问题来了,你都知道root密码,你岂不是可以肆意妄为,所以这时候就有了sudo 这个临时提权的命令,使用sudo 命令可以让普通用户执行一下系统级别的命令时临时的使用root的权限来执行,这样子是安全的,那么普通用户具备执行哪些系统命令,是由root用户在/etc/sudoers
中指定的,如下图所示:
user MACHINE=COMMANDS #语法
#xiaoming是用户名,ALL表示所有主机(ALL)表示身份,表示xiaoming能以所有身份运行,最后一个ALL表示所有命令
xiaoming ALL=(ALL) ALL #这行就定义了xiaoming用户能以sudo提权执行全部的命令,生产环境不能给这么危险的权限给普通用户
可以vim /etc/sudoers
进行文件编辑 或者直接使用命令 visudo
也是打开文件编辑
危险
上面图中我们看到有一行:
%wheel ALL=(ALL) ALL #这行表示只要有普通用户加入到wheel组中,那么普通用户就会拥有全部权限,非常危险,建议注释掉这一行
sudo的语法格式如下:
sudo 命令
示例:
[xiaoming@Centos8 ~]$ useradd limng #没加sudo ,默认没有权限执行useradd命令
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
[xiaoming@Centos8 ~]$ sudo useradd chao #加了sudo,临时提权到root用户,具备执行useradd命令的权限,但要求输入用户密码进行验证
[sudo] password for xiaoming: