su test
,可以在不登出当前用户的前提下,登录为另外一个用户,但是我们切换成普通用户后,执行命令时便受权限限制sudo的配置文件/etc/sudoers
1)别名规则
定义主机别名
`Host_Alias FILESERVERS = fs1, fs2```
用户别名,可以是用户,也可以是组,组时前面需加%
User_Alias ADMINS = jsmith, mikem
定义命令别名
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
注意:上面的ADMINS、NETWORKING就是我们说的别名了。当设置主机别名时,成员必须是与主机相关联,比如主机名,IP地址等;设置用户别名时,成员必须是系统用户;使用命令别名时,必须使用绝对路径,文件名可以用通配符。还需注意的是,别名规则每行算一个规则,如果一行不够用时,可以使用 \
来换行。
例如:
1 2 3 | Host_Alias Hostname = xs_test01,192.168.111.25 User_Alias ADMIN = xs,test Cmnd_Alias CMD = /bin/cat,/bin/vim,/bin/sh,/sbin/ifconfig |
---|
2)授权规则
1 2 3 4 5 6 | xs ALL=/bin/cat,/bin/vim 表示xs用户在切换到root用户下可以执行这两条命令。 xs ALL=(root) /bin/cat,/bin/vim 表示xs用户可以切换到root用户下,执行这两条命令,且可以切换到任何用户执行这两条命令。 xs ALL=(root) NOPASSWD:/bin/cat,/bin/vim 表示xs用户可以切换到root用户或任何用户下执行这两条命令,且不用输入自己的密码 |
---|
结合别名
1 2 3 | Cmnd_Alias CMD = /bin/cat,/bin/vim,/bin/sh,/sbin/ifconfig xs ALL=(root) NOPASSWD:CMD 表示xs这个用户可以切换到root用户来执行CMD下的所有命令,且免密钥。 |
---|
验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [xs@xs_test01 script]$ sudo rm 1.t 我们信任您已经从系统管理员那里了解了日常注意事项。 总结起来无外乎这三点: #1) 尊重别人的隐私。 #2) 输入前要先考虑(后果和风险)。 #3) 权力越大,责任越大。 [sudo] xs 的密码: [xs@xs_test01 script]$ sudo cat 1.t err 200 500 111111 404 11231412 |
---|
wheel组就是一个管理员的组,比如一个使用场景如下:
我们创建一个普通用户,想让这个普通用户不管是用su还是sudo都能免密切换root用户时,这个时候我们就可以利用wheel组了。
1)修改/etc/pam.d/su
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. auth sufficient pam_wheel.so trust use_uid #将这一行的#去掉 # Uncomment the following line to require a user to be in the "wheel" group. #auth required pam_wheel.so use_uid auth substack system-auth auth include postlogin account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session include postlogin session optional pam_xauth.so |
---|
2)将用户添加到wheel组中
usermod -G wheel xs
这里有一个问题就是,我们使用su
是不用输密码的,但是sudo还不可以
sudo免密方法(都是修改/etc/sudoers文件):
xs ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
第二种方式的好处就是,每添加一个用户只需加到wheel组里即可。