在 Linux 中用户可以属于隐藏组吗?

在 Linux 中用户可以属于隐藏组吗?

在 Linux 中,用户可能属于某个组,但该组名称未在/etc目录中的组文件中列出。如果是,请举几个例子?

答案1

  1. 组定义可能存在其他位置,如nsswitch.conf

    • 国家情报系统

    • LDAP

    • Berkeley DB 文件,而不是平面文件

    • ...以及可能或不可能作为系统中的附加 NSS 模块提供的任意数量的替代方法。

  2. 文件系统对象可能属于未在 中或通过任何其他名称服务定义的 UID 或 GID /etc/passwd/etc/groups就内核而言,这是完全可以接受的,因为无论如何,用户空间都会提供到人类可读名称的映射。在这种情况下,用户空间工具通常会显示数字 ID 而不是名称。

    另一方面,尽管完全有可能,但对象具有无效的 UID 或 GID 通常表明存在一些重大问题 - 通常,用户被删除而没有对其文件进行适当的处​​理。在大多数情况下,这种情况是不可接受的,因为如果新用户/组重新使用相关的 UID/GID,而新用户/组现在发现自己拥有来自过去用户的大量文件,则可能会泄露信息...

如果您提到您的实际问题,我们也许能够提供更多帮助......

答案2

有可能某个文件的 GID 未列在组中,如果您从另一台机器导入文件(例如 tar-ball),这种情况经常发生。然后该组会显示为ls数字,例如 4000。例如

-rw-r--r-- 1 root 4000 0 Dec 24 11:04 foo.foo

(我通过 做到了这一点touch foo.foo; chgrp 4000 foo.foo

组文件只是为了方便命名,当然也是为了定义哪些用户属于哪个组。

同样,您可以在/etc/passwd设置用户时fred将组 4000 作为数字。

我不确定你是否可以在/etc/groups

[正如 larsmans 指出的那样,NIS 也可能影响用户和组的名称]

我希望这回答了你的问题。

答案3

组成员资格可能定义为国家情报系统而不是/etc/group。请咨询您的/etc/nsswitch.conf

相关内容