1. 修改 Root 用户的登陆 Shell
此方法会禁用ssh和su,编辑 /etc/passwd 文件
root:x:0:0:root:/root:/bin/bash
修改成
root:x:0:0:root:/root:/sbin/nologin
此后,使用 Root 用户登陆只会显示一条信息 “This account is currently not available”
2. 禁止 Root 用户通过 SSH 登陆
此方法会禁用ssh,但仍可以使用普通用户su root,编辑 /etc/ssh/sshd_config 文件
将PermitRootLogin 设置为 no
然后,再重启 SSHD 服务让配置生效,systemctl restart sshd
上面两种方法有验证,下面没有验证过
3、禁止 Root 用户在任何终端设备上登陆
# mv /etc/securetty /etc/securetty.orig
# touch /etc/securetty
# chmod 600 /etc/securetty
这种方法只会影响需要分配终端的程序,比如 login,gdm/kdm/xdm 之类的显示管理器等, 像 Su、Sudo、SCP、SFTP、SSH 之类的操作则无效。
4、通过 PAM 模块禁止 Root 用户访问 Login 和 SSHD 服务
以通过 /lib/security/pam_listfile.so 模块来限定指定用户禁止访问某些服务
# echo root |tee -a /etc/deniedusers
# chmod 600 /etc/ssh/deniedusers
在 /etc/pam.d/login 或 /etc/pam.d/sshd 文件中加上如下的配置
auth required pam_listfile.so \
onerr=succeed item=user sense=deny file=/etc/ssh/deniedusers