Linux禁止root登录
Linux禁止root登录
·
Linux禁止root登录
添加受限用户secadmin,初始密码123456
useradd secadmin -p '$6$tTJtWS.J$8eGiEiCAbhVO9FjCxW8tGBh8uC0iG5Cdkfe/2paMs7XHltv95HnlwRvuKqwj/WcfbHjgsELo0B0CrroIFqxr/0'
只允许secadmin通过ssh登录
在/etc/ssh/sshd_config
查看是否有AllowUsers
配置,如果有,将其修改为:
AllowUsers secadmin
如果没有,在文件底部添加如下内容:
AllowUsers secadmin
脚本如下:
# only allow secadmin ssh login
allowusers=`grep -E '^#*AllowUsers ' /etc/ssh/sshd_config`
if [ -z "$allowusers" ]; then
echo "AllowUsers secadmin" >> /etc/ssh/sshd_config
else
sed -i 's/^[#]*AllowUsers .*$/AllowUsers secadmin/g' /etc/ssh/sshd_config
fi
禁止root本地登录
在/etc/pam.d/login文件顶部加入如下内容:
auth required pam_succeed_if.so user != root quiet
脚本如下:
#disable root login
norootlogin='auth required pam_succeed_if.so user != root quiet'
removeroot=`grep '$norootlogin' /etc/pam.d/login`
if [ -z "$removeroot" ]; then
sed -i '2i\auth required pam_succeed_if.so user != root quiet' /etc/pam.d/login
fi
禁止su命令
把/etc/pam.d/su配置文件里的#auth required pam_wheel.so use_uid
注释去掉。
脚本如下:
#disable su command
nosucmd=`grep -E 'auth\s+required\s+pam_wheel.so\s+use_uid' /etc/pam.d/su`
if [ -z "$nosucmd" ]; then
echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su
else
linenum=`grep -nE 'auth\s+required\s+pam_wheel.so\s+use_uid' /etc/pam.d/su | awk -F\: '{print $1}'`
sed -i "${linenum}s/.*/auth required pam_wheel.so use_uid/" /etc/pam.d/su
fi
限制secadmin可执行命令
- 先将所有命令other的执行权限取消,再保留必需的基本命令。
chmod o-x /bin/*
chmod o+x /bin/su /bin/bash
chmod o-x /usr/bin/*
chmod o+x /usr/bin/id /usr/bin/tty /usr/bin/sudo
chmod o-x /sbin/*
chmod o+x /sbin/consoletype
chmod o-x /usr/sbin/*
chmod o-x /usr/local/bin/*
chmod o-x /usr/local/sbin/*
- 添加允许通过sudo来执行的命令。
在/etc/sudoers.d/目录下创建一个名为secadmin的文件,内容如下:
Cmnd_Alias SECCMD = /bin/date, /bin/df, /bin/dmesg, /bin/ps
secadmin ALL=NOPASSWD:SECCMD
脚本如下:
#enable command for secadmin
rm -rf /etc/sudoers.d/secadmin
echo "Cmnd_Alias SECCMD = /bin/date, /bin/df, /bin/dmesg, /bin/ps" >> /etc/sudoers.d/secadmin
echo "secadmin ALL=NOPASSWD:SECCMD" >> /etc/sudoers.d/secadmin
该配置意味着secadmin可以通过sudo来执行:date、df、dmesg和ps命令,并且执行时不需要输入密码。
如果需要更多的命令,在Cmnd_Alias SECCMD =
后依次加入即可。
注意:
1. 命令需要指定全路径。
2. 设定命令的操作需在禁止root登录之前,否则secadmin无权限修改该配置文件。
3. 如果想留个后门,可以在Cmnd_Alias SECCMD =
列表里加入可编辑该配置文件的权限/bin/vi /etc/sudoers.d/secadmin
。
更多推荐
已为社区贡献1条内容
所有评论(0)