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
设置完成测试。