Debian中配置NIS:用户账号管理
1、添加指定gid的组
groupadd -g 1001 upload # 添加了一个指定gid为1001的upload用户
2、添加指定uid的用户,并加入到指定组
useradd -u 1001 -g upload testuser # 添加了一个uid为1001的用户,并加入到upload的组中
3、建立一个新用户账户testuser,并设置UID为1001,主目录为/usr/testuser,属于users组:
useradd -u 1001 -d /usr/testuser -g users -m testuser
一、服务端(Server端192.168.109.137)
1、安装软件包apt-get update apt install -y nis
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828154822990-1224320385.png)
vim /etc/defaultdomain查看设置域名
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828154835596-1177059881.png)
2、设置nis主服务器
vim /etc/default/nis
vim /etc/ypserv.securenets
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828154913601-2043966039.png)
将允许的 IP 范围添加到该文件的末尾,如下图所示。之后,我们可以保存并关闭我们的文件。
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828154927744-777515908.png)
4、为NIS添加自己的IP地址
vim /etc/hosts
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828154935646-102270930.png)
修改vim /etc/yp.conf加入下面的设置
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220829105340612-379607561.png)
5、重新启动 NIS 服务器
systemctl restart rpcbind ypserv yppasswdd ypxfrd systemctl enable rpcbind ypserv yppasswdd ypxfrd systemctl restart nis
adduser nistest /usr/lib/yp/ypinit -m
//每次更新账户信息后都需要更新数据库 //cd /var/yp //make //make -C /var/yp/
getent passwd
二、Client(客户端192.168.109.142)
1、安装软件包
apt-get update apt install -y nis
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828155138033-46218921.png)
2、修改配置文件vim /etc/default/nis 确保有如下设置,配置为 NIS 客户端
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828155146217-898118573.png)
3、修改vim /etc/yp.conf加入下面的设置
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828155155311-1782233861.png)
4、在passwd、shadow、group以及hosts行的files后面都添加上nis。
vim /etc/nsswitch.conf
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828155204209-1636589150.png)
5、启动服务并设置开机启动
systemctl restart rpcbind nscd ypbind systemctl restart rpcbind ypbind systemctl enable rpcbind ypbind
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828155231739-581151315.png)
ypcat passwd
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220828155249107-879169084.png)
大功告成。
三、autofs+nfs自动挂载
1、安装软件包apt-get install autofs
vim /etc/auto.master 添加以下内容
格式为
挂载点 配置文件
/home /etc/auto.nis
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220829100726397-1956191701.png)
3、新建立配置文件
vim /etc/auto.nis
服务端用户名 服务端IP:挂载用户的目录
* 192.168.102.137:/home/&
4、保存退出后重启autofs,并设置开机启动
systemctl restart autofs systemctl enable autofs
四、其它
检查 Debian 10 上“rpcbind”服务的状态:systemctl status rpcbind
systemctl status ypservz
1、客户端autofs自动挂载(推荐)/(服务端是NFS)
方式1:用户自登陆挂载编辑autofs配置文件 vim /etc/auto.master
![](https://img2022.cnblogs.com/blog/2173981/202208/2173981-20220829104702774-1108876778.png)
编辑 vim /etc/auto.misc
![](https://img2022.cnblogs.com/blog/2173981/202209/2173981-20220901092440405-1967913089.png)
注:*匹配所有用户名,&匹配用户路径,使用&字符通常与通配符*一起使用。
方式2:自动挂载192.168.109.137:/home 到本机/home
(1)编辑autofs配置文件 vim /etc/auto.master
![](https://img2022.cnblogs.com/blog/2173981/202209/2173981-20220901090702788-332213040.png)
在主映射文件/etc/auto.master中使用/-,然后具体的挂载路径全部在子映射文件/etc/auto.nfs。(--timeout=10 也可以在后面加上多长时间不使用自动卸载)
【其它】:或者在/etc/auto.master.d 下面创建一个主映射文件。这个文件的作用是确定挂载点的基础目录同时确定用于创建自动挂载的映射文件。首先主映射文件以.autofs作为扩展名
vim nfs.autofs
![](https://img2023.cnblogs.com/blog/2173981/202303/2173981-20230314155239998-928459263.png)
(2)创建/etc/auto.nfs文件
cp /etc/auto.misc /etc/auto.nfs vim /etc/auto.nfs /home -fstype=nfs,rw 192.167.253.5:/home
或
(3)设置已经挂载的文件系统在30s内没有被使用,将其自动卸载。
vim /etc/autofs.conf
![](https://img2022.cnblogs.com/blog/2173981/202209/2173981-20220901091819657-342132727.png)
(4)重启autofs使其生效
systemctl restart autofs
五、nis主从配置(基于以上完成的优化)
nis master:192.168.102.133 主机名:uos003nis slave: 192.168.102.134 主机名:uos004
nis client: 192.168.102.135 主机名:uos005
1、master服务器端的设置
(1)为了让master与slave之间可以传输数据,需要对master做一点小小的改动。进入到/var/yp目录下,修改Makefile文件,把NOPUSH的值修改为false即可vim /var/yp/Makefile
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001114504358-672301149.png)
(2)后告诉master需要把数据推送给哪些slave节点。【创建/var/yp/ypservers文件】,并向其中添加slave节点名称,进程如下操作:
vim /var/yp/ypservers
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001114532501-1723077608.png)
(3)传输数据时会用到ypxfrd服务,该服务运行时需要访问/var/yp/securenets文件,用于安全性检查,即验证可以在哪些服务器之间进行数据同步。
执行如下操作【创建文件】并添加内容:
vim /var/yp/securenets (255.255.255.0 192.168.102.0)
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001114553352-1306081017.png)
(4)设置了slave服务,那么master节点最好也开启ypbind服务,确保在执行make后,更新的数据可以主动发送给slave节点上。
这里只提及需要修改/etc/yp.conf,/etc/nsswitch.conf等文件
(5)开启服务,并设置开机自启动
systemctl restart ypbind ypxfrd systemctl enable ypbind ypxfrd
cd /var/yp make //make -C /var/yp
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001114925534-1448075792.png)
【注意】:/var/yp/目录下会产生一个你自己设定的nisdomainname目录,一定要保证master,slave,client中的nisdomainname设置的一致
2、slave节点配置
(1)配置主要配置文件vim /etc/default/nis将NISSERVER=false改为NISSERVER=master
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115004918-1275626566.png)
(2)对于slave节点,既作为服务端,又作为客户端,所以不仅需要配置/etc/ypserv.conf文件,还需要配置客户端需要配置的文件,例如/etc/yp.conf等文件。ypbind是客户端服务,/etc/yp.conf是ypbind的配置文件。
yp.conf的配置如下:
vim /etc/yp.conf
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115029296-1825483119.png)
(3)设置可以允许访问我们的NIS服务器的IP范围
vim /etc/ypserv.securenets 注释掉#0.0.0.0 0.0.0.0
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115055245-1171887449.png)
(4)启动服务,并设置开机自启动(启动前确认rpcbind服务启动了已经)
systemctl restart ypserv ypxfrd ypbind systemctl enable ypserv ypxfrd ypbind
初此同步时,需要执行以下命令:
/usr/lib/yp/ypinit -s uos003
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115154594-1392600628.png)
查看数据库被放置到了/var/yp/"nisdomainname"当中
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115205365-250707404.png)
3、客户端的设置
vim /etc/yp.conf
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115239252-1837222312.png)
重启服务
systemctl restart rpcbind ypbind
4、测试
(1)停掉nis mastersystemctl stop ypserv
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115329163-551238928.png)
(2)在客户端查看用户
ypcat passwd
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115410984-1444358390.png)
依然可以查到,说明nis主从服务搭建成功
5、排错
(1)master服务器端执行make时报错![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115453036-822883889.png)
主要原因是执行make时调用yppush工具需要用到ypbind服务,而master节点没有开启ypbind服务。如果不使用高可用,即不设置slave服务,那么master节点可以不启用ypbind,毕竟所有的账号信息都在master节点上。但是,如果设置了slave服务,那么master节点最好也开启ypbind服务,确保在执行make后,更新的数据可以主动发送给slave节点上。
(2)客户端查看用户ypcat passwd出错
YPBINDPROC_DOMAIN: Domain not bound
No such map passwd.byname. Reason: Can't bind to server which serves this domain
![](https://img2022.cnblogs.com/blog/2173981/202210/2173981-20221001115513725-385941246.png)
i、说明没有在vim /etc/yp.conf里添加slave节点
ii、或者没有重启ypbind服务
systemctl restart ypbind