Linux中设置普通用户可以su和sudo

一:设置普通用户可以使用su 

su : 可以在一个登陆 session 下切换不同用户(通常是root).意思就是不需要退出当前用户的登录而切换到新用户.

1、 vi /etc/pam.d/su

第一个框:去掉注释之后,信任的wheel组用户su时候不用密码。

第二个框:去掉注释之后,只有wheel的用户才能su。

注意:以上是仅仅wheel组才可以su,如果改为其他组可以su的话,那么就把 use_uid 改为 group=chen即可(比如 chen组),这样chen组的用户可以su,wheel的用户就不能su了。

2、把用户test1放到chen组中
#usermod -a -G chen test1 (加-a ,意思是把test1添加到chen组中,也在原来的组中)
如果想把用户test1只放到chen组中,从其他组删除,则:
#usermod -G chen test1

二:设置普通用户可以使用sudo

sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.

1 先查看系统是否安装sudo,可以使用命令 rpm -qa sudo 查看,若没有安装,可以使用yum安装  yum -y install sudo 

[root@chen ~]# rpm -qa sudo
sudo-1.8.19p2-10.el7.x86_64

2 编辑 /etc/sudoers 文件  使用命令  visudo ( 而不是直接使用 vim /etc/sudoers ) , 可以新建一个组, 或者直接使用里面默认的wheel组 ( wheel前面的% 表示wheel是组, 如果没有%则表示wheel是普通用户 ), 

[root@chen ~]# cat /etc/sudoers | grep wheel
## Allows people in group wheel to run all commands
%wheel    ALL=(ALL)    ALL
# %wheel    ALL=(ALL)    NOPASSWD: ALL
[root@chen ~]# 

3 把用户放到一个可以运行sudo命令的组中, 那么该用户就可以使用sudo了 ( 也可以在新建用户时候直接指定可以使用sudo命令的组中 )

[root@chen ~]# usermod -aG wheel vbox
[root@chen ~]# 
[root@chen ~]# useradd -G wheel test
[root@chen ~]# 
[root@chen ~]# cat /etc/group | grep wheel
wheel:x:10:vbox,test
[root@chen ~]# 

注意: 以上操作中,  /etc/sudoers 文件里面这一行  %wheel ALL=(ALL) ALL   意思是 wheel组的成员可以在任何地方运行所有命令, 如果想限制用户或组只能使用特定命令该如何设置呢?  请看下面

举个例子: 如果设置一个test组,组成员可以在所有地方执行 cat useradd userdel usermod 命令,那么添加这一行  %test ALL=/bin/cat, /sbin/useradd, /sbin/userdel, /sbin/usermod  , 除了以上4条命令可以使用sudo之外,其他命令都不可以使用sudo 

[test@chen ~]$ sudo cat /etc/sudoers | grep test%test    ALL=/bin/cat, /sbin/useradd, /sbin/userdel, /sbin/usermod
[test@chen ~]$ 
[test@chen ~]$ sudo ls /etc/sudoers
Sorry, user test is not allowed to execute '/bin/ls /etc/sudoers' as root on chen.
[test@chen ~]$ 
[test@chen ~]$ sudo useradd user1
[test@chen ~]$ cat /etc/passwd | grep user1
user1:x:1008:1008::/home/user1:/bin/bash
[test@chen ~]$ 
[test@chen ~]$ sudo groupadd group1
Sorry, user test is not allowed to execute '/sbin/groupadd group1' as root on chen.
[test@chen ~]$ 
[test@chen ~]$ sudo ls /etc/sudoers
Sorry, user test is not allowed to execute '/bin/ls /etc/sudoers' as root on chen.
[test@chen ~]$ 
[test@chen ~]$ 

原文地址:https://www.cnblogs.com/relax1949/p/9267294.html