Linux之sudo权限
前言
sudo权限, 是可以临时把用户变成另一个用户(比如root)去执行某个命令。
添加sudo权限
使用visudo
命令。即可修改/etc/sudoers
文件。
切换到最后一行。输入命令即可。
格式如下
1 | 用户名 允许sudo的远程ip=(可使用的身份) 授权命令(绝对路径) |
比如shutdown -r now
重启命令, 不能被普通用户执行。
现在要赋予ahao
用户重启服务器的权限。
命令越详细, 权限越小。最好写绝对路劲。
1 | ahao ALL=(ALL) /sbin/shutdown -r now |
这里的ALL=(ALL)
的意思是
- 左边的ALL, 表示被管理的主机的地址, 即是哪个远程主机或ip登录的这台服务器。
- 右边的ALL, 表示用户可使用的身份, 省略的话会赋予root权限。
下面是个简单的例子
1 | # 1. 临时切换为 root , 执行 visudo |
sudo支持正则、取反
添加以下规则
1 | ahao ALL=/usr/sbin/useradd # 赋予用户创建角色的权限 |
为ahao
用户添加创建角色的权限, 还要添加修改密码的权限, 才能真正使用创建的用户。
但是如果使用上述规则, 则会允许ahao
执行/usr/bin/passwd root
修改root
的密码, 这样很不安全。
修改为以下规则
1 | ahao ALL=/usr/sbin/useradd |
sudo的别名
调用visudo
命令, 插入别名, 别名名称必须大写, 多个值用逗号分隔。
- 用户别名:
User_Alias MYUSER = user1, user2, user3
- 主机别名:
Host_Alias MYHOST = 192.168.0.1, 192.168.0.2
- 命令别名:
Cmnd_Alias MYCMD = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
警告
sudo
很容易造成不安全的行为, 如同上面的修改密码的权限。
所以在使用的时候一定要注意安全问题。