NSSWITCH.CONF - Linux手册页
Linux程序员手册 第5部分
更新日期: 2017-05-03
名称
nsswitch.conf-名称服务交换机配置文件
说明
GNU C库和某些其他应用程序使用名称服务交换机(NSS)配置文件/etc/nsswitch.conf来确定从中获取名称服务信息的来源,这些信息按类别和顺序排列。每种信息类别均由数据库名称标识。
该文件为纯ASCII文本,各列之间用空格或制表符分隔。第一列指定数据库名称。其余的列描述了查询源的顺序以及可以由查找结果执行的一组有限的操作。
GNU C库可以理解以下数据库:
- aliases
- 邮件别名,由getaliasent(3)和相关功能使用。
- ethers
- 以太网号码。
- group
- getgrent(3)和相关功能使用的用户组。
- hosts
- 主机名和号码,由gethostbyname(3)和相关函数使用。
- initgroups
- 补充组访问列表,由getgrouplist(3)函数使用。
- netgroup
- 主机和用户的网络范围内的列表,用于访问规则。 glibc 2.1之前的C库仅通过NIS支持网络组。
- networks
- getnetent(3)和相关功能使用的网络名称和数字。
- passwd
- 用户密码,由getpwent(3)和相关功能使用。
- protocols
- 网络协议,由getprotoent(3)和相关功能使用。
- publickey
- NFS和NIS +使用的Secure_RPC的公用密钥和秘密密钥。
- rpc
- 远程过程调用的名称和编号,由getrpcbyname(3)和相关函数使用。
- services
- getservent(3)和相关功能使用的网络服务。
- shadow
- 影子用户密码,由getspnam(3)和相关功能使用。
GNU C库将忽略名称未知的数据库。一些应用程序使用此功能为自己的数据库实施特殊处理。例如,sudo(8)查阅sudoers数据库。
这是/etc/nsswitch.conf文件的示例:
passwd: compat group: compat shadow: compat hosts: dns [!UNAVAIL=return] files networks: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files services: nis [NOTFOUND=return] files
第一列是数据库名称。其余列指定:
- *
- 一个或多个服务规范,例如"文件"," db"或" nis"。线路上的服务顺序确定了依次查询这些服务直到找到结果的顺序。
- *
- 如果从先前的服务获得了特定的结果,则执行可选的操作,例如" [NOTFOUND = return]"。
系统上支持的服务规范取决于共享库的存在,因此可以扩展。名为/lib/libnss_SERVICE.so.X的库将提供命名的SERVICE。在标准安装中,可以使用"文件"," db"," nis"和" nisplus"。对于主机数据库,您可以另外指定" dns"。对于passwd,group和shadow数据库,您还可以指定" compat"(请参见下面的"兼容模式")。对于glibc 2.0,版本号X可以是1,对于glibc 2.1和更高版本,版本号X可以是2。在安装了其他库的系统上,您可以访问其他服务,例如" hesiod"," ldap"," winbind"和" wins"。
也可以根据服务规范来指定操作。该操作将根据从先前数据源获得的结果来修改行为。行动项目采用一般形式:
- [STATUS = ACTION] [!STATUS = ACTION]
哪里
- 状态=>成功|未找到无法使用再试一次 ACTION =>返回|继续|合并
!否定测试,匹配除指定结果之外的所有可能结果。关键字的大小写无关紧要。
STATUS值与前面的服务规范调用的查找函数的结果匹配,并且可以是以下之一:
- success
- 没有发生错误,并且返回了所请求的条目。此条件的默认操作是"返回"。
- notfound
- 查找成功,但是找不到请求的条目。此条件的默认操作是"继续"。
- unavail
- 该服务永久不可用。这可能意味着无法读取所需的文件,或者对于网络服务而言,意味着服务器不可用或不允许查询。此条件的默认操作是"继续"。
- tryagain
- 该服务暂时不可用。这可能意味着文件已被锁定,或者服务器当前无法接受更多连接。此条件的默认操作是"继续"。
ACTION值可以是以下之一:
- return
- 立即返回结果。不要调用任何其他查找功能。但是,出于兼容性原因,如果这是组数据库的选定操作和未找到状态,并且配置文件不包含initgroups行,则始终调用下一个查找功能,而不会影响搜索结果。
- continue
- 调用下一个查找函数。
- merge
- 在两个数据库条目之间使用[SUCCESS = merge]。当一个组位于两个组条目的第一个条目中时,处理将继续进行到下一个条目。如果在下一个条目中也找到了该组(并且组名和GID完全匹配),则第二个条目的成员列表将添加到要返回的组对象中。自glibc 2.24起可用。请注意,将不会对getgrent(3)进行合并,也不会在重复的两个条目中都出现重复成员时删除它们。
Compatibility mode (compat)
NSS" compat"服务类似于" files",除了它另外允许相应文件中的特殊条目以授予用户或网络组成员访问系统的权限。以下条目在此模式下有效:
对于passwd和shadow数据库:
- +user
- 从NIS passwd / shadow映射中包括指定的用户。
- +@netgroup
- 在给定的网络组中包括所有用户。
- -user
- 从NIS passwd / shadow映射中排除指定的用户。
- -@netgroup
- 排除给定网络组中的所有用户。
- +
- 从NIS passwd / shadow映射中包括每个用户,但以前排除的用户除外。
对于组数据库:
- +group
- 包括NIS组映射中的指定组。
- -group
- 从NIS组映射中排除指定的组。
- +
- 包括NIS组映射中除先前排除的每个组之外的每个组。
默认情况下,源是" nis",但是可以通过指定除" compat"本身之外的任何NSS服务作为伪数据库passwd_compat,group_compat和shadow_compat的源来覆盖它。
文件
名为SERVICE的服务由驻留在/ lib中的名为libnss_SERVICE.so.X的共享库实现。
- /etc/nsswitch.conf NSS配置文件。
- /lib/libnss_compat.so.X
- 实现" compat"源。
- /lib/libnss_db.so.X
- 实现" db"源。
- /lib/libnss_dns.so.X
- 实现" dns"源。
- /lib/libnss_files.so.X
- 实现"文件"源。
- /lib/libnss_hesiod.so.X
- 实现" hesiod"源。
- /lib/libnss_nis.so.X
- 实现" nis"源。
- /lib/libnss_nisplus.so.X
- 实现" nisplus"源。
为各个数据库指定"文件"源时,将读取以下文件:
- 别名/ etc / aliases
- ethers
- / etc / ethers
- group
- / etc / group
- hosts
- / etc / hosts
- initgroups
- / etc / group
- netgroup
- / etc / netgroup
- networks
- / etc / networks
- passwd
- / etc / passwd
- protocols
- / etc / protocols
- publickey
- / etc / publickey
- rpc
- / etc / rpc
- services
- / etc /服务
- shadow
- / etc /阴影
备注
在每个使用nsswitch.conf的进程中,整个文件只能读取一次。如果以后更改文件,则该过程将继续使用旧配置。
传统上,服务信息只有一个来源,通常是单个配置文件(例如/ etc / passwd)的形式。但是,随着其他名称服务(例如网络信息服务(NIS)和域名服务(DNS))的普及,需要一种比编码到C库中的固定搜索顺序更灵活的方法。基于Solaris 2 C库中Sun Microsystems使用的机制的名称服务切换机制为该问题提供了一种更干净的解决方案。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。