1、 Linux用户管理用户提权命令sudo
sudo可以让普通用户拥有以root权限去执行命令。
2、 sudo提权配置文件及使用语法
配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。
2.1 sudo命令参数:
参数 | 说明 |
-l | 列出用户在主机上可用和禁止的命令 |
-k | 删除时间戳,再次使用sudo时需要用户密码 |
-u | 指定用户身份 |
-v | 验证时间戳 |
[user1@localhost ~]$sudo -l 查看用户可用和禁止的命令
[sudo] password for user1:
Matching Defaults entries for user1 on this host:
User oldgirl may run the following commands on this host:
(ALL) /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm,/usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
2.2 提权配置格式说明:
提权的用户 | 主机=(运行身份) | 允许和禁止的命令 |
root | ALL=(ALL) | ALL |
3 、sudoers配置文件中的别名分类
1)用户别名:User Aliases
2)主机别名:Host Aliases
3)身份别名:Runas Aliases
4)命令别名:Command Aliases
4 、sudo配置注意事项
1)命令别名下的成员必须是文件或目录的绝对路径。
2)别名名称包含大写字母、数字、下划线(字母必须大写)。
3)一个别名下有多个成员,成员之间用,逗号隔开,成员必须是真是有效存在的。
4)别名成员受别名类型制约,定义什么样类型的别名就要有与之对应的成员匹配。
5)别名规则是每行一个规则,如果一行容不下是可通过 \ 续行。
6)指定切换的用户身份用()括号括起来,如果省略则默认为root用户。
7)如不需要密码直接运行,应加NOPASSWD:参数
8)禁止某类命令是,在动作命令全家!号,将其放在允许命令的后面。
9)提权用户如果是用户组的话,在用户组前面加%。
5、sudo日志审计
1、sudo配合rsyslog对sudo进行日志审计
[root@localhost ~]#rpm -qa sudo rsyslog 检查sudo rsyslog是否安装
rsyslog-5.8.10-10.el6_6.x86_64
sudo-1.8.6p3-19.el6.x86_64
2、创建文件/var/log/sudo.log
[root@localhost ~]#touch /var/log/sudo.log
3、使用visudo编辑/etc/sudoers配置文件,在最后一行添加如下代码后保存退出。
(必须用tab分割开)
Defaults logfile=/var/log/sudo.log
[root@localhost ~]#echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers
[root@localhost ~]#tail -1 /etc/sudoers 检查是否添加成功
Defaults logfile=/var/log/sudo.log
3、查看日志
[root@localhost ~]#tail /var/log/sudo.log