sudo和su的用法

时间:2022-07-22
本文章向大家介绍sudo和su的用法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

两者的区别

  1. su命令可以临时切换用户身份,例如要想由root用户切换到普通用户test,可以执行su test,可以在不登出当前用户的前提下,登录为另外一个用户,但是我们切换成普通用户后,执行命令时便受权限限制
  2. 假如执行su切换到目标用户时,我们是需要输入目标用户的密码,才能成功切换
  3. 执行sudo命令时,可以允许用户提升运行单个命令的权限,但是需要输入当前用户的密码,且该用户在sudoers中,否则没有权限
  4. sudo要比su灵活很多,sudo可以限制sudo用户使用哪些命令

普通用户免密切换root

sudo配置

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组的使用

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文件):

  1. xs ALL=(ALL) NOPASSWD: ALL
  2. %wheel ALL=(ALL) NOPASSWD: ALL

第二种方式的好处就是,每添加一个用户只需加到wheel组里即可。