Linux更改root用户名以提高安全性
目录原理方法效果恢复注意原理Linux系统根据UID唯一标识用户,当/etc/passwd两个用户名具有同样的UID时,在login成功后视为同一个用户。因为 whoami、echo $USER、w等命令显示的用户名都是根据UID查询 /etc/passwd 查到的第一个记录的用户名,而/etc/passwd文件中的两条记录,可以为用户设置不同的密码,不同的登录shell,不同的家目录。方法编辑/
描述
Linux的超级管理员用户名默认为root众所周知。一旦允许了root用户的远程登录,恶意用户在爆破密码时,就只需猜解密码,省去了猜解用户名的时间。
原理
Linux系统根据UID唯一标识用户,当
/etc/passwd
两个用户名具有同样的UID时,在login成功后视为同一个用户。
因为whoami
、echo $USER
、w
等命令显示的用户名都是根据UID查询/etc/passwd
查到的第一个记录的用户名,而/etc/passwd
文件中的两条记录,可以为用户设置不同的密码,不同的登录shell,不同的家目录。
方法
-
编辑
/etc/passwd
,复制 root一行的记录,粘贴到root行的 上方,修改第一个root字段为新的用户名,例如 superuser。如下所示:
-
passwd superuser
# 修改新增用户的密码,此操作会在/etc/shadow
文件中新增superuser的密码记录 -
passwd -l root
# 锁定root用户,禁止以root账号登录,如果需要解锁,请执行passwd -u root
-
无需重启,注销当前root会话并重新登录。
效果
恢复
-
删除
/etc/passwd
与/etc/shadow
的关于用户superuser的记录; -
注销当前superuser会话并重新登录。
注意
-
一定不要删除root,锁定即可,删除可能造成无法预知的错误。
-
无法使用
userdel
删除superuser,因为删除用户时,系统会反查该用户的UID,并查询系统中是否存在隶属于该UID的进程,若存在,则无法删除该用户。
-
此方法只是变相修改了root用户名,但新增的superuser仍然相当于root用户,因此无法越过如
/etc/ssh/sshd_config
中PermitRootLogin no
等相关限制。
更多推荐
所有评论(0)