我们往往会遇到一些需要将root权限赋予普通用户的情况,很多帖子都说了通过修改/etc/sudoers文件,但是很多都没有说明具体怎么操作,甚至有的操作有点坑。
下图就是我遇到过的坑:
图中利用vim打开/etc/sudoers进行修改,但是该文件是只读文件,无法用vim修改,你们可能想着用chmod 777修改文件权限进行修改,但是这个会引发所有用户sudo权限失效(亲测)。
正确的操作如下所示:
1.用 visudo 命令配置 sudo:[root@localhost ~]# visudo# 在 /etc/sudoers 配置文件中 root ALL=(ALL) ALL 这一行下面加入 test ALL=(ALL) ALL查看sudo用户(可以看到我们添加的test已经在里面):[root@localhost ~]# cat /etc/sudoers | grep ALLDefaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"root ALL=(ALL) ALLtest ALL=(ALL) ALL# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS%wheel ALL=(ALL) ALL# %wheel ALL=(ALL) NOPASSWD: ALL%wheel ALL=(ALL) NOPASSWD: ALL# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
2.sudo 免密配置:
我们首先查看用户密码:
[test@localhost test]$ sudo cat /etc/shadow[sudo] password for test: root:$6$YZrm6scxO5zzICbR$fOzORb.0Ib9POZzJmrnzOGDqfFySp8X.9p5QpcpnJXWHIJvZcFpXQONyNigwrZbhXtyfnFn5F1mJsdkXS3jEF/::0:99999:7:::bin:*:16925:0:99999:7:::然后用visudo 命令配置 sudo:[root@localhost ~]# visudo# 在 /etc/sudoers 配置文件中 %wheel ALL=(ALL) NOPASSWD: ALL 这一行的下面 加入test ALL=(ALL) NOPASSWD: ALL下面查看免密用户,发现test已经在其中[root@localhost ~]# cat /etc/sudoers | grep NOPASSWD# %wheel ALL=(ALL) NOPASSWD: ALL%wheel ALL=(ALL) NOPASSWD: ALLtest ALL=(ALL) NOPASSWD: ALL[test@localhost ~]$ sudo cat /etc/shadow# 用普通用户test查看 /etc/shadow 文件已经不需要再输入当前登录用户的密码