1.
在linux中,一般使用/etc/passwd,/etc/shadow,/etc/group提供用户登陆的密码认证
2.
其实,也可以把密码等用户信息保存在nis,mysql等非文件中
3.
因此,为了提供同一的调用,产生了nsswitch,介于登录与认证数据之间
nsswitch: Network Service Switch
提供一切名称解析,用户名,组名,主机名到对应的uid,gid,ip等等。
框架:/etc/passwd, /etc/shadow, /etc/group
库:libnss_file.so ==> 使用传统的/etc/passwd, /etc/shadow, /etc/group信息
libnss_nis.so
libnsss_ldap.so
libnsss_mysql.so ==> 使用mysql存储用户认证信息
配置文件: /etc/nsswitch.conf
配置文件相应的修改需要使用的库,以对应不同的。比如使用传统的/etc/passwd, /etc/shadow, /etc/group信息,就修改为使用libnss_file.so
4.
其中/etc/nsswitch.conf有下面的一行内容:
hosts: files dns
就是说先使用/etc/hosts文件解析主机名。
转载于:https://blog.51cto.com/lbs1991/1536834