/etc/nsswitch
文件提供了对 用户鉴权, 网络配置 等服务所需要的数据信息.
一个典型的 nsswitch 文件如下:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: files systemd
group: files systemd
shadow: files
gshadow: files
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
语法非常简单, 整个 conf 文件按行分割, 每一行都描述了 “当需要某个资源的时候要到哪里区查找”.
每一行 :
左边是资源名称, 右边是提供这个资源的位置以及根据某个位置查找结果执行的动作. 例如 hosts: files mdns4_minimal [NOTFOUND=return] dns
表示 hosts 的信息依次从 files (至于 files 在哪里, 后面会讲) -> mdns4_minimal -> dns 中查找. 哪个先找到就用哪个. 因此顺序也代表了优先级. 其中 [NOTFOUND=return]
表示 “当在 mdns4_minimal 中没有找到时直接 return 而不继续向后查找”.
那么除了 hosts, networks 以外, nsswitch 还控制哪些资源的查找路径呢? files 又代表什么呢? 我们接着往下看.
笔者将资源逻辑上分为两大类, 一类涉及到账户和鉴权, 另一类涉及到网络配置.
资源 | 作用 | files | 参考 |
---|---|---|---|
group | 所有的用户组 | /etc/group | - |
initgroups | 用户的所属组列表 | /etc/group | - |
netgroup | Network-wide list of hosts and users | /etc/netgroup | - |
passwd | 用户密码 | /etc/passwd | - |
shadow | 用户加密后的密码 | /etc/shadow | - |
资源 | 作用 | files | 参考 |
---|---|---|---|
hosts | 主机名 | /etc/hosts | https://www.wenjiangs.com/doc/jdu2o2dy |
ethers | 网络号 | /etc/ethers | - |
networks | Network names and numbers | /etc/networks | - |
protocols | 网络协议定义 | /etc/protocols | https://www.wenjiangs.com/doc/otpdmusl |
services | 网络服务端口号和协议等 | /etc/services | https://www.wenjiangs.com/doc/gnhfbtdl |
publickey | NFS 以及 NIS+ 所用到的公私钥 | /etc/publickey | - |
rpc | RPC 的名称和号码 | /etc/rpc | - |
aliases | 邮件别名 | /etc/aliases | - |
查找结果一般为大写, 总共有如下几种:
后续动作一般为小写, 总共有如下几种: