在我的某些服务器中,末尾有一行奇怪的内容,/etc/passwd/
仅包含以下内容:
+::::::
有人知道这是什么意思吗?
我搜索了整个网络,但只找到了 Jim 在 2012 年提出的同样但尚未解答的问题:
有人知道这在 Linux SLES 11 中是什么意思吗?可以删除吗?
(看https://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/)。
有问题的服务器运行SLES 12
,其他的Ubuntu bionic
。
答案1
我从以下 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 密码映射中的指定用户)、-user 或 -@netgroup(排除指定用户)和 +(包括 NIS 密码映射中的除排除用户之外的所有用户)。
您可以使用 /etc/passwd 中的 +user:::::: 扩展格式覆盖 NIS 密码映射中特定用户的某些密码字段。非空字段将覆盖 NIS 密码映射中的信息。
由于大多数人只在 /etc/passwd 末尾放置一个 + 来包含 NIS 中的所有内容,因此该开关为这种情况 (passwd: files nis) 提供了一种更快的替代方案,它不需要在 /etc/passwd、/etc/group 和 /etc/shadow 中使用单个 + 条目。如果这还不够,NSS compat 服务会提供完整的 +/- 语义。默认情况下,源是 nis,但可以通过将 nisplus 指定为伪数据库 passwd_compat、group_compat 和 shadow_compat 的源来覆盖此默认值。这些伪数据库仅在 GNU C 库中可用。
答案2
正如 Lukas Räpple 在评论中指出的那样,该行是使用 NIS 与古老的 libc5 的遗留条目。
如果您想继续使用 NIS 但删除该行,请将passwd: compat
行更改/etc/nsswitch.conf
为passwd: files nis
first。您还应该检查shadow:
和group:
行(以及/etc/group
和/etc/shadow
文件)是否有类似的旧设置。