su(切换用户):直接切换root,需要输入root密码
sudo su:当前用户暂时申请root权限,需要输入当前用户密码
sudo命令的使用
简单的说,sudo 是一种权限管理机制管理员可以授权于一些普通用户去执行一些root才能执行的操作而不需要知道root的密码。
严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。
当然,能做什么不能做什么都是通过安全策略来指定的。
默认的安全策略记录在/etc/sudoers文件中。
1.编辑配置文件命令:visudo
注意:编辑sudo的配置文件/etc/sudoers是一般不要直接使用vi (vi /etc/sudoers) 去编辑,因为sudoers配置有-定的语法,直用vi编辑保存系统不会检查语法,如有错也保存了可能导致无法使用sudo工具,最好使用visudo命令去配置。 虽然visudo也是调用vi去编辑,但是保存时会进行语法检查,有错会有提示。
2、配置文件/etc/sudoers的具体配置
root | ALL=(ALL) | ALL |
---|---|---|
用户名 | 被管理主机的地址= (可使用的身份) | 授权命令 (绝对路径) (注意: 这里写的越具体,授权就越安全) |
%wheel | ALL=(ALL) | ALL |
---|---|---|
%组名 | 被管理主机的地址= (可使用的身份) | 授权命令 (绝对路径) (注意: 这里写的越具体,授权就越安全) |
可使用的身份:(ALL) 代表可以切换成任意身份。不写默认是root
举例
举例,授权给user1用户可以添加新账号,和修改普通用户的密码: .
user1 ALL=/usr/sbin/useradd 赋予user1添加用户权限.命令必须写入绝对路径
user1 ALL=/usr/bin/passwd 赋予改密码权限, 只是这样做要遭!必须取消对 root的密码修改
user1 ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd ", !/usr/bin/passwd root #注意:逗号后必须有空格
1)创建一个用户设置密码
2)给该用户增加root权限的指令,用该用户添加用户
3)给用户指定具体权限
这里使用正则表达式[a-zA-Z0-9]*
jsxl ALL= /usr/sbin/userad -c [a-zA-Z0-9]*
测试
4)给该用户授予赋予用户密码的权限,但是不能修改root的密码这样权限就太大了
# 建议使用该命令
visudo /etc/sudoers
测试