一、什么是NSS
1 |
|
二、什么是nsswithch.conf文件
1 |
|
三、nsswithch.conf配置格式
1 2 3 4 5 6 7 8 9 |
|
1 信息(Info)
Nsswitch.conf文件通常控制着用户(在passwd中)、口令(在shadow中)、主机IP和组信息(在group中)的搜索。下面的列表描述了nsswitch.conf文件控制搜索的大多数信息(Info项)的类型。
automount: |
自动挂载(/etc/auto.master和/etc/auto.misc) |
bootparams: |
无盘引导选项和其他引导选项(参见bootparam的手册页) |
ethers: |
MAC地址 |
group: |
用户所在组(/etc/group),getgrent()函数使用该文件 |
hosts: |
主机名和主机号(/etc/hosts),gethostbyname()以及类似的函数使用该文件 |
networks: |
网络名及网络号(/etc/networks),getnetent()函数使用该文件 |
passwd: |
用户口令(/etc/passwd),getpwent()函数使用该文件 |
protocols: |
网络协议(/etc/protocols),getprotoent()函数使用该文件 |
publickey: |
NIS+及NFS所使用的secure_rpc的公开密钥 |
rpc: |
远程过程调用名及调用号(/etc/rpc),getrpcbyname()及类似函数使用该文件 |
services: |
网络服务(/etc/services),getservent()函数使用该文件 |
shadow: |
映射口令信息(/etc/shadow),getspnam()函数使用该文件 |
aiases: |
邮件别名,sendmail()函数使用该文件
|
2 方法(method)
下面列出了nsswich.conf文件控制搜索信息类型的方法,对于每一种信息类型,都可以指定下面的一种或多种方法:
files: |
搜索本地文件,如/etc/passwd和/etc/hosts |
nis: |
搜索NIS数据库,nis还有一个别名,即yp |
dns: |
查询DNS(只查询主机) |
compat: |
passwd、group和shadow文件中的±语法(参见本节后面的相关内容)
|
3 搜索顺序(从左至右)
1 2 3 4 5 6 |
|
4 动作项([action])
1 2 3 |
|
STATUS: |
STATUS的取值如下: NOTFOUND:方法已经执行,但是并没有找到待搜索的值。 默认的动作是continue。 SUCCESS:方法已经执行,并且已经找到待搜索的值,没有返回错误。默认动作是return。 UNAVAIL:方法失败,原因是永久不可用。举例来说,所需的文件不可访问或者所需的服务器可能停机。默认的动作是continue。 TRYAGAIN:方法失败,原因是临时不可用。举例来说,某个文件被锁定,或者某台服务器超载。默认动作是continue。 |
action: |
action的取值如下: return:返回到调用例程,带有返回值,或者不带返回值。 continue:继续执行下一个方法。任何返回值都会被下一个方法找到的值覆盖。 |
示例: |
举例来说,下面这行取自nsswitch.conf文件,它的作用是让系统首先使用DNS来搜索给定主机的IP地址。DNS方法后面的动作项是测试该方法所返回的状态是否为“非(!)UNAVAIL”。 hosts dns [!UNAVAIL=return] files 如果DNS方法没有返回UNAVAIL(!UNAVAIL),也就是说DNS返回SUCCESS、NOTFOUND或者TRYAGAIN,那么系统就会执行与该STATUS相关的动作(return)。其结果就是,只有在DNS服务器不可用的情况下才会使用后面的方法(files)。 如果DNS服务器并不是不可用(两次否定之后就是“可用”),那么搜索返回域名或者报告未找到域名。只有当服务器不可用的时候,搜索才会使用files方法(检查本地的/etc/hosts文件)。 |
5 compat方法passwd、group和shadow文件中的"±"
1 2 3 |
|
四、getent命令
1 2 3 4 5 6 7 8 9 10 |
|
参考链接:
https://blog.csdn.net/water_cow/article/details/7190880
https://www.cnblogs.com/besharp/p/8351227.html
Name Service Switch under UNIX/Linux
The Name Service Switch (Overview)
How to use nsswitch.com to find Linux system information
29 System Databases and Name Service Switch
http://man7.org/linux/man-pages/man5/nsswitch.conf.5.html
https://serverfault.com/questions/76853/nsswitch-conf-is-there-a-daemon-i-need-to-restart
https://unix.stackexchange.com/questions/140378/editing-nsswitch-conf-file-safely