系统中有两个根

系统中有两个根

在 Ubuntu 20.04 中,我执行以下两项根记录:

getent passwd| grep root

我有

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

当我使用

getent group| grep root

我有

root:x:0:
root:x:0:

我是否理解正确,这是因为这台机器有一个 LDAP 服务器并且 nsswitch.conf 包含:

密码:文件 systemd 组:文件 systemd

并且删除“systemd”就足以消除此异常吗?并且两个“root”的存在并不意味着入侵系统?

注意在澄清“FedonKadifeli”和“Raffa”的问题后:

/etc/passwd 和 /etc/group 文件中只有一个“root”条目。我做了一个实验,删除了 /etc/nsswitch.conf 文件中的“systemd”条目,留下:

passwd: files 
group: files

并获取一条记录 getent passwd| grep root

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

并有一条记录 getent group| grep root

root:x:0:0

答案1

黑客不会从添加此类重复条目中获益,并且如果黑客已经获得了sudo对您系统的访问权限,那么这个问题将是您最不用担心的问题。所以请放心。

一个概率

getent将从名称服务切换库中获取条目:

getent 命令显示名称服务切换库支持的数据库中的条目,这些库在 /etc/nsswitch.conf 中配置。如果提供了一个或多个键参数,则仅显示与提供的键匹配的条目。否则,如果没有提供键,将显示所有条目 (除非数据库不支持枚举)。

是的,getent将查询任何可访问的数据库/etc/nsswitch.conf包括/etc/passwd/etc/group提及files以及可能LDAP提到的其他服务systemd(通过 systemd 的瓦林克nss-systemd) 并显示所有数据库的所有结果。

值得一提的是,nss-systemd 模块还确保 root 和 nobody 用户和组(即 UID/GID 为 0 和 65534 的用户/组)始终保持可解析,即使它们未在 /etc/passwd 或 /etc/group 中列出,或者这些文件丢失。

另一个概率

另一种解释是,您有两个针对同一用户的条目,但用户 shell 不同密码文件 /etc/passwd

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

并且有两个重复的相同条目用户组文件 /etc/group

root:x:0:
root:x:0:

重复的条目并不正常,但可能会发生...例如由于尝试按照 Internet 上的某些指南更改用户 shell 并复制粘贴,而类似的条目已经存在(对于像 root 这样的常用用户名来说很有可能),或者可以通过运行修改/etc/passwd/etc/group具有sudo权限的脚本来添加。

/etc/passwd虽然您的系统可能在和中有重复条目的/etc/group情况下正常工作,即读取第一个条目并忽略重复项,但最好删除重复的行(请先阅读有关内容,并确保在修复和使用之前备份文件vipw/vigr进行编辑)。

相关内容