Linux为普通用户sudo赋权ROOT权限
sudo(SuperUser DO)是Linux系统中允许普通用户以root或其他指定用户身份执行命令的工具。
sudo提供了一种机制,可以在不共享root密码的情况下,为信任的用户提供管理权限,从而增强系统安全性。
下面记录一下在腾讯云Centos7系统上sudo权限配置过程。
一、配置命令
sudo的配置文件位于/etc/sudoers,可以直接使用vi命令编辑,也可以使用visudo命令,该命令等价vi /etc/sudoers。
因为使用visudo命令会自动检查语法错误,所以一般都使用该命令配置。
二、配置语法
过滤一下注释行和空行,看一下默认配置选项:
grep -vE '^#|^$' /etc/sudoers 
最后三行就是系统的默认权限配置。
配置文件采用用户/组 主机=(目标用户) 授权命令的格式,各字段含义如下:
用户/组:指定授权对象,可为具体用户名(如root)、用户组(如%wheel)或用户别名。
主机:限制用户从哪些主机执行sudo,ALL表示所有主机。
目标用户:用户可切换的身份,ALL表示任意用户,默认通常为root。
授权命令:用户可执行的命令路径,需使用绝对路径(如/usr/bin/mount),ALL表示所有命令。
三、配置方法
1.直接将用户加入到wheel组
上面看到默认配置可以wheel组是具有全部root权限的,我们可以直接将用户加入到该组来获得权限,比如将测试用户testuser加入到wheel组:
usermod -G wheel testuser 
然后切换到testuser用户进行测试:

直接创建用户会提示没有权限,这时候就可以通过sudo命令提权:

查看用户已经新增成功了:

使用这种加入wheel组的方式比较适合为批量用户配置相同权限。
2.单独为用户配置sudo权限
因为wheel组比较特殊,出于安全原因,大部分情况下我们会注释掉用户组的root权限,而选择单独为用户配置:
编辑sudo配置文件:
visudo 新增用户的sudo权限配置:
testuser ALL=(ALL) ALL 
输入:wq!保存后,使用下面命令验证一下配置文件语法是否正确:
visudo -c -f /etc/sudoers 
切换到testuser用户进行测试:

测试成功创建用户。
四、配置实例
1.为testuser用户添加sudo权限:
testuser ALL=(ALL) ALL 2.为testuser用户添加sudo权限,同时不需要验证密码(不推荐):
testuser ALL=(ALL) NOPASSWD:ALL 3.为testuser用户添加sudo权限,限制其可以执行的命令(可以重启服务,同时可以touch在任何目录下创建文件):
testuser ALL=(ALL) /bin/systemctl,/usr/bin/touch 4.限制testuser用户只能从192.168.100.100主机执行sudo权限:
testuser 192.168.100.100=(ALL) ALL 5.授权testuser使用passwd命令,但是不能修改root用户密码(使用!符号显式禁止执行某命令):
testuser ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root 扩展说明
which命令来获取某个命令的所在绝对路径。
2.使用sudo时,必须先输入普通用户的密码,默认5分钟之内不需要重复输入密码,超时后需要重新验证身份。如果需要修改超时时间,可以在/etc/sudoers文件中增加timestamp_timeout配置时长:
Defaults timestamp_timeout=5
- 本文标签: Linux
- 本文链接: https://blog.eyyyye.com/article/107
- 版权声明: 本文由爱做梦的比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
