Linux 禁用 root 登录,并创建新的管理员账户

最近在折腾玩客云,刷了一个Armbian Linux系统,顺手将 root 远程登录也给禁用了,这里记录一下方法。

创建新管理账户
创建账户

useradd -m admin

设置密码

passwd admin

添加到系统管理员组

#CentOS/RHEL
usermod -aG wheel admin

#Debian/Ubuntu
usermod -aG sudo admin

禁用root账户
禁用 root 有很多中方式,这里简单列两种

1.修改 root 用户的登陆 Shell
vim /etc/passwd

找到 root 那一行,将末尾的/bin/bash 改为 /sbin/nologin。

比如

root:x:0:0:root:/root:/bin/bash

改为

root:x:0:0:root:/root:/sbin/nologin

此方法可以禁止 root 用户通过 shell 登录,即禁止 root 用户 ssh 远程登录和通过普通用户切换到 root 用户。

此后, root 用户登陆,会显示一条信息 “This account is currently not available” 。

这是默认消息,但是,你可以更改它并在文件中设置自定义消息 /etc/nologin.txt。

2.禁止 root 用户通过 ssh 登陆
编辑 sshd_config 将 PermitRootLogin 改为 no,如果是 PermitRootLogin 是注释状态,取消注释,然后将其设置为 no,如果不存在直接新增一条即可。

vim /etc/ssh/sshd_config

如:

PermitRootLogin no

然后重启 SSHD 服务让配置生效

systemctl restart sshd

此方法仅禁止用户通过 ssh 登录, 但仍可以使用普通用户切换到 root。