sudo 防止su -i 切到root下

sudo在日常运维中我们经常使用的工具,可以给普通用户授予root用户权限执行某些特殊操作,但这里也有个问题,在设置完后,普通用户通过su -i 仍然可以切到root用户下,那如何防止呢,我们就从基本的先看看如何设置sudo用户:

新建文件webadminsudo 写入:

webadmin ALL=(ALL) NOPASSWD:ALL,!/usr/bin/passwd,!/bin/bash,!/bin/sh,!/bin/tcsh,!/bin/su

看我配置文件内容,sudo -i  默认是调用bash命令切换到root的shell下获取root权限的所有只要禁用bash就可以了.

这样用户就无法切到root用户下了,简单吧。

从网上还看到其它例子,可以增加更多限制,可以参考:

另一个例子:

Cmnd_Alias DENYCMD = !/bin/su,!/usr/bin/passwd,!/usr/bin/passwd root,!/bin/vi /etc/sudoers,!/usr/bin/vim /etc/sudoers,!/usr/sbin/visudo,!/usr/bin/sudo -i,!/bin/vi /etc/ssh/*,!/usr/bin/vim /etc/ssh/*,!/bin/chmod 777 /etc/*,!/bin/chmod 777 *,!/bin/chmod 777,!/bin/chmod -R 777 *

Cmnd_Alias DENYRMCMD = !/bin/rm /*,!/bin/rm /,!/bin/rm -rf /,!/bin/rm -rf /*,!/bin/rm /etc,!/bin/rm -r /etc,!/bin/rm -rf /etc,!/bin/rm /etc/*,!/bin/rm -r /etc/*,!/bin/rm -rf /etc/*,!/bin/rm /root,!/bin/rm -r /root,!/bin/rm -rf /root,!/bin/rm /root/*,!/bin/rm -r /root/*,!/bin/rm -rf /root/*,!/bin/rm /bin,!/bin/rm -r /bin,!/bin/rm -rf /bin,!/bin/rm /bin/*,!/bin/rm -r /bin/*,!/bin/rm -rf /bin/*

!/bin/su

YANFA ALL=(ALL) NOPASSWD:ALL,DENYCMD,DENYRMCMD

这样会增加更多限制。

还有一个问题,有时候普通用户切root需要输入密码,有时候很是很烦人,下面提供一个方法,可以不用输密码了,哈:

如何su – root不需要密码:

vi /etc/pam.d/su

将 auth这一列的注释号 去除

# Uncomment the following line to implicitly trust users in the “wheel” group.

auth            sufficient      pam_wheel.so trust use_uid

然后将登陆用户加入 wheel组

usermod -G wheel martin

设置完成测试。