sudo 限制普通用户权限

限制用户sudo所能执行的命令

linux是多用户多任务的分时操做系统,共享该系统的用户每每不仅一个。linux

但因为root帐户密码的敏感性和root帐号的无限制权限, 有必要经过useradd建立一些普通用户, 只让他们拥有不彻底的权限; 若有必要,再来申请执行一些root权限的指令。
sudo就是来解决这个需求的。
sudo命令的执行流程是: 当前用户转换到root, 而后以root身份执行命令, 执行完成后, 直接退回到当前用户.
须要注意的是: 执行sudo时输入的密码, 是当前用户的密码, 并不是root密码.ide

赋予用户sudo操做的权限
[root@zhang ~]# visudo
#在99行下面添加如下内容
zhang ALL=(ALL) ALL
#若是是命令使用下面的方式:zhang ALL=(ALL) /bin/touch(多个权限用“,”分开,ALL全部权限,NOPASSWD: ALL免密码)操作系统

注:
通常经常使用sudo命令来临时得到root权限执行一些特权命令。这很方便,可是也有一个问题: 普通用户能够经过sudo命令完成用户的增删和密码的更改,甚至是对root用户的密码更改!!!
如:it

xxx@yyy$:sudo passwd root
Input the new UNIX pass word:
这样就能够直接越过root直接修改root的密码。这是很是危险的。class

解决办法

一、 groupadd admin 建立一个admin用户组,后边在设置权限时会用到权限

二、usermod -a -G admin [用户] 将用户添加到admin组密码

三、在这里能够经过 /etc/sudoers 文件限制touch

$:sudo visudo
注意,这命令在最后修改sudoers文件中,也要加以限制,不然还能够经过这个命令恢复。word

在这个文件中修改默认的如下两行:di

%admin ALL=(ALL) ALL
%sudo ALL=(ALL) ALL
为如下:

%admin ALL=/usr/sbin/,/sbin/,/usr/bin/,!/usr/bin/passwd,!/usr/sbin/visudo,!/usr/sbin/useradd,!/usr/sbin/userdel%sudo ALL=/usr/sbin/,/sbin/,/usr/bin/,!/usr/bin/passwd,!/usr/sbin/visudo,!/usr/sbin/useradd,!/usr/sbin/userdel

相关文章
相关标签/搜索