潇湘夜雨移动版

主页 > 系统 > 操作系统 >

sudo正则方式授权

sudo工具可以用于Linux系统的用户权限管理,一般添加管理员通过赋予root身份的方式,但这样管理员的权限太高了。
有些通过添加指定命令的方式授权,但这样工作量较大,而且还经常导致权限分配不对。
本文将会介绍怎样在root用户的基础上减一部分命令的权限,来实现便捷的个性化授权。

1、配置

1rpm -qa|grep –i sudo查看是否安装sudo包

2vi /etc/sudoers添加下面一行配置

hsxyz QD-254.45=(ALL)NOPASSWD: /sbin/iptables,/sbin/ethtool

hsxyz普通用户名

QD-254.45代表主机名;ALL代表所有主机,否则以hostname命名仅指在本机上具有该sudo权限

(ALL)指该普通用户可以以所有用户的权限来执行命令,可以填其他用户

NOPASSWD: 使sudo执行命令时不再需要密码

/sbin/iptables 具体命令,多个以逗号间隔

 

2、使用

切到普通用户下su – hsxyz

sudo /sbin/iptables –nvL即可执行

此时如果没有NOPASSWD:设置的话,将会提示输入密码,此密码是普通用户自己的密码


3、正则表达式的应用


如果用sudo给普通用户赋予passwd命令的权限,那么普通用户就可以用sudo命令来修改root密码,这是十分不安全的。不过,在赋予权限时可以加上一些限制,将普通用户可用的命令限制在合理范围内。
- 可以使用正则表达式,不需要加引号
- 使用 ! 取反,表示不允许执行这条命令

例如以下权限。twilight用户只能更改普通用户的密码:
twilight ALL=/usr/bin/passwd [a-zA-Z]*, !/usr/bin/passwd root, !/usr/bin/passwd

此时查看twilight的sudo权限:

[aliyunzixun@xxx.com root]$ sudo passwd root [sudo] password for twilight: 对不起,用户 twilight 无权以 root 的身份在localhost.localdomain 上执行 /bin/passwd root。


4、root减权限方法


test2   ALL=(ALL)       ALL,!/usr/sbin/useradd,!/bin/rm

作用:test2具有root的权限,但是不能sudo执行useradd、rm(其实rm 用户本身还是可执行)命令。

[test2@web ~]$ sudo useradd --help
对不起,用户 test2 无权以 root 的身份在 web 上执行 /usr/sbin/useradd --help。
[test2@web ~]$ sudo usermod --help
用法:usermod [选项] 登录

选项:
  -c, --comment 注释            GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
[test2@web ~]$ sudo rm test
[sudo] password for test2:
对不起,用户 test2 无权以 root 的身份在 web 上执行 /bin/rm test。
[test2@web ~]$ rm test #不用sudo可以执行



[root@web ~]# tail -f /var/log/secure        #从安全日志中也可以看到 useradd和rm的权限被禁止了
Dec 15 18:12:12 web sudo:    test2 : 命令禁止使用 ; TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/sbin/shutdown --help
Dec 15 18:14:19 web sudo:    test2 : 命令禁止使用 ; TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/usr/bin/yum remove dstat
Dec 15 18:15:06 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=list
Dec 15 18:15:20 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/usr/bin/yum remove dstat
Dec 15 18:15:37 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/sbin/shutdown --help
Dec 15 18:15:44 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/usr/sbin/useradd --help
Dec 15 18:17:39 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/usr/sbin/usermod --help
Dec 15 18:18:29 web sudo:    test2 : 命令禁止使用 ; TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/usr/sbin/useradd --help
Dec 15 18:18:35 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/usr/sbin/usermod --help
Dec 15 18:18:56 web sudo:    test2 : 命令禁止使用 ; TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/bin/rm test
Dec 15 18:21:33 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/sbin/reboot --help
Dec 15 18:22:10 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/bin/chmod --help
Dec 15 18:22:28 web sudo:    test2 : TTY=pts/1 ; PWD=/home/test2 ; USER=root ; COMMAND=/usr/sbin/userdel --help
(责任编辑:liangzh)