/etc/passwd 末尾的“+::::::”

dr0*_*r0i 9 passwd

在我的一些服务器中,末尾有这条奇怪的行/etc/passwd/,仅包含:

+::::::

有谁知道这是什么意思?

我在网上搜索,但只找到了 2012 年一位吉姆提出的相同的未回答的问题:

任何人都知道这在 Linux SLES 11 中意味着什么并且可以将其删除

(参见https://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/)。

有问题的服务器运行SLES 12,其他Ubuntu bionic

tel*_*coM 11

正如 Lukas Räpple 在评论中指出的那样,该行是将 NIS 与古老的 libc5 一起使用的遗留条目。

如果你想使用NIS保留,但删除了这一行,改变passwd: compat在行/etc/nsswitch.confpasswd: files nis第一位。您还应该检查shadow:group:行(和/etc/group/etc/shadow文件)是否有类似的旧设置。


小智 10

我正在从以下 Unix stackexchange 答案中重新发布以下内容:

https://unix.stackexchange.com/questions/106215/whta-does-bin-bash-in-etc-passwd-mean

答案在 nsswitch.conf(5) 手册页中:

与 +/- 语法交互(兼容模式)

没有 NYS 的 Linux libc5 没有名称服务开关,但允许用户进行一些策略控制。在 /etc/passwd 中,您可以拥有以下形式的条目:+user 或 +@netgroup(包括 NIS passwd 映射中的指定用户)、-user 或 -@netgroup(排除指定用户)和 +(包括每个用户,除了从 NIS passwd 映射中排除的那些)。

您可以使用 /etc/passwd 中的 +user:::::: 扩展形式覆盖 NIS passwd 映射中特定用户的某些 passwd 字段。非空字段会覆盖 NIS passwd 映射中的信息。

由于大多数人只在 /etc/passwd 的末尾放置一个 + 以包含 NIS 中的所有内容,因此该开关为这种情况提供了一个更快的替代方案(passwd:文件 nis),它不需要 /etc/passwd 中的单个 + 条目、/etc/group 和 /etc/shadow。如果这还不够,NSS 兼容服务提供完整的 +/- 语义。默认情况下,源是 nis,但这可以通过将 nisplus 指定为伪数据库 passwd_compat、group_compat 和 shadow_compat 的源来覆盖。这些伪数据库仅在 GNU C 库中可用。