从零开始学习Linux(二十九):sudo权限
1、sudo权限说明
sudo权限是root把本来只能超级用户执行的命令赋予普通用户执行。
sudo的操作对象是系统命令;
使用visudo命令可以进行sudo权限操作。如下图所示:
visudo命令visudo命令,实际修改的是 /etc/sudoers文件(命名非常人性化,sudo命令执行者们~~~),和使用vim /etc/sudoers命令作用一模一样。
执行命令,查看/etc/sudoers文件:
vim /etc/sudoers
1.1、使用sudo给用户赋予权限
配置格式:root ALL=(ALL) ALL
- root:用户名;
- 第一个ALL:被管理主机的地址;
- 第二个ALL:表示可使用的身份;
- 第三个ALL:表示授权命令(绝对路径);
注意:被管理主机的地址,指的并非访问来源IP,而是访问目标IP!!!
说明:假设用户A的IP是192.168.1.123,要访问的Linux服务器IP地址是192.168.1.127。此时Linux服务器的超级用户在为用户A赋予sudo权限的时候,第一个ALL的IP地址要填写本服务器IP即192.168.1.127,而非用户A的电脑IP。
1.2、使用sudo给用户组赋予权限
配置格式:%wheel ALL=(ALL) ALL;
- wheel:用户组名;
- 第一个ALL:被管理主机的地址;
- 第二个ALL:表示可使用的身份;
- 第三个ALL:表示授权命令(绝对路径);
注意:%不能被省略!!!
2、查看可用的sudo命令
命令:sudo -l;
3、普通用户执行sudo命令
命令格式:sudo [授权命令的绝对路径];
4、sudo权限示例
示例场景:超级用户root每天忙得不行,所以把修改密码的权限赋予了zhoujielun,让其代劳。
使用vim命令打开/etc/sudoers文件,在其中添加内容 zhoujielun ALL=/usr/bin/passwd,如下图所示:
然后强制保存退出。
执行命令,切换用户到zhoujielun:
su - zhoujielun
查看用户zhoujielun可执行的sudo命令:
sudo -l
如下图所示:
使用sudo命令,会要求输入用户的密码(一段时间内无需输入密码即可查询)。
输入密码验证成功后,会显示用户可以使用的sudo命令。
此时使用命令为用户wangsulong更改密码。注意必须要使用 sudo+命令绝对路径的方式,如果不加sudo,会提示只有root可以修改密码。
不加sudo直接更改密码,执行命令:
/usr/bin/passwd wangsulong
结果报错,如下图所示:
必须要使用sudo命令,才表示使用的是root用户赋予的更改密码权限,执行命令:
sudo /usr/bin/passwd wangsulong
如下图所示,能够为用户wangsulong修改密码了。