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

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

在我的某些服务器中,末尾有一行奇怪的内容,/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.confpasswd: files nisfirst。您还应该检查shadow:group:行(以及/etc/group/etc/shadow文件)是否有类似的旧设置。

相关内容