禁用sudo –

3年前 (2016-04-12) Jason Liu 运维, 默认 0评论 已收录 811℃

系统在用sudo权限控制的时候。通常会需要禁用一些不希望非root账号使用的命令。

通常只要把不希望执行的命令写在visudo打开的文件中,也就是/etc/sudoers文件。

例如不希望普通用户执行sudo passwd命令就可以这样写

user   ALL=(ALL)  ALL,!/bin/su

把不希望执行的命令都写在ALL后面。

可是sudo有一个选项-i,默认执行sudo -i 会提示输入自己的密码,然后直接切换到root权限下了

sudo -i   这是sudo的一个选项,并不是sudo 后面执行一条命令,所以并不能再sudoers文件中控制。

查看sudo命令的帮助文档知道,sudo -i 其实就是在切换账号的shell[bash]到root权限下。所以我们只要禁止sudo后面执行bash就行了。

在sudoers文件中ALL后面加上!/bin/bash就可以禁止sudo -i切换到root了

没有加!/bin/bash之前,执行sudo -i后提示输入自己用户密码后就直接切换到root了。

加入了!/bin/bash后,执行sudo -i 后输入密码会有报错信息,如下:

[[email protected] ~]$ sudo -i
[sudo] password for tom:
Sorry, user tom is not allowed to execute '/bin/bash' as root on 192.168.1.1

通常linux系统中会有多个可以登录的shell,这可以查看/etc/shells文件得到。

[[email protected] ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh

所以我们要把这些shell都加入到sudoers文件中的ALL后面。如

user   ALL=(ALL)  ALL,!/bin/bash,!/bin/sh,!/bin/tcsh,!/bin/csh

通常在在使用sudo控制权限的时候。会禁用一下常用命令的使用

搜集网友配置

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/*

 

 

 

相关推荐

嗨、骚年、快来消灭0回复。