NIS服务器
sun最开始命名为 Yellow pages ,黄页,
NIS = YP;
14.1 NIS的由来与功能
NIS--Network information services(NIS server)
NIS 主要提供的是用户的账号、密码、家目录文件名、 UID 等信息,但 NIS 并没有提供文件系统。同时, NIS 同样使用到RPC 服务器,与NFS一样。
RPC(Remote Procedure Call):远程过程调用
14.1.1 NIS的主要功能:管理账户信息
其他的Linux主机当有客户端登入的时候,都必须到NIS服务器来查询用户的账户与密码,如此一来,所有的Linux主机的账号与密码,都在NIS服务器中。
针对账户信息的变动只需要变动,这一台NIS服务器即可,其他哪怕是100台机器,登陆信息都在这里取得;
NIS服务器提供给其他机器的数据:
服务器端文件名 档案内容
/etc/passwd 提供用户账号、 UID、 GID、家目录所在、 Shell 等等
/etc/group 提供群组数据以及 GID 的对应,还有该群组的加入人员
/etc/hosts 主机名与 IP 的对应,常用于 private IP 的主机名对应
/etc/services 每一种服务 (daemons) 所对应的端口 (port number)
/etc/protocols 基础的 TCP/IP 封包协定,如 TCP, UDP, ICMP 等/etc/rpc 每种 RPC 服务器所对应的程序号码
/var/yp/ypservers NIS 服务器所提供的数据库
14.1.2 NIS的运作流程:透过RPC服务
由于 NIS 服务器主要是提供用户登入的信息给客户端主机来查询之用,所以, NIS服务器所提供的数据当然就需要用到传输与读写比较快速的 "数据库" 文件系统, 而不是传统的纯文本数据。
RPC远程程序调用,开启服务将NIS的数据问题,发送到客户端;
考虑到负载以及安全性,一般NIS服务器采用:master/slave架构;
master NIS 服务器提供系统管理者制作的数据库,slave则取得来自master的数据,并提供给客户端查询。
客户端可以向整个网域要求用户资料的响应,master 与 slave 皆可回答, 由于 slave 的数据来自于 master ,所以用户账号数据本身是同步的!
如此一方面可以分散 NIS 服务器的负载,而且也可以避免因 NIS 服务器挂点而导致的无法登入的风险。
运行机制如下:
关于 NIS Server (master/slave) 的运作程序:
1. NIS Master 先将本身的账号密码相关档案制作成为数据库档案;
2. NIS Master 可以主动的告知 NIS slave server 来更新;
3. NIS slave 亦可主动的前往 NIS master server 取得更新后的数据库档案;
4. 若有账号密码的异动时,需要重新制作 database 与重新同步master/slave。
关于当 NIS Client 有任何登入查询的需求时:
1. NIS client 若有登入需求时,会先查询其本机的 /etc/passwd,/etc/shadow 等档案;
2. 若在 NIS Client 本机找不到相关的账号数据,才开始向整个 NIS网域的主机广播查询;
3. 每部 NIS server (不论 master/slave) 都可以响应,基本上是先响应者优先
可以看到NIS client 会先查询本机的账户信息,这样如果本机的账户信息与NIS server不一致的话,会产生错乱。
因此一般,NIS client 会主动去除一般账户信息,仅留root账户信息;