Ubuntu 部署NIS服务
在一个大型的网域当中,如果有多部 Linux 主机,万一要每部主机都需要设定相同的账号与密码时,你该怎么办?复制 /etc/passwd ?应该没有这么呆吧?如果能够有一部账号主控服务器来管理网域中所有主机的账号, 当其他的主机有用户登入的需求时,才到这部主控服务器上面要求相关的账号、密码等用户信息, 如此一来,如果想要增加、修改、删除用户数据,只要到这部主控服务器上面处理即可, 这样就能够降低重复设定使用者账号的步骤了。
CentOS的配置方法在这里
实验环境
virtualbox : 6.1 ,网络设置为桥接模式
master : ubuntu 18.04.03 LTS 192.168.50.79
slave : ubuntu 18.04.03 LTS 192.168.50.185
服务端设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| # 1. 安装NIS
apt update
apt install nis
# 安装的时候会让设置域名,可以使用nisdomainname 查看/设置域名
# 2. 配置hosts文件
vim /etc/hosts
192.168.50.185 slave
192.168.50.79 master
# 3. 修改配置文件
vim /etc/default/nis
修改如下
NISSERVER=false => NISSERVER=master
vim /etc/ypserv.conf
最后写入
127.0.0.1/255.0.0.0 :* :* :none
192.168.50.0/255.255.255.0 :* :* :none
* :* :* :deny
# 其中各字段的意义如下
# Host : 需要设置权限的主机或网络
# Domain : 允许访问的域
# Map : 密码数据库
# Security: 权限, none即不设置限制,deny为拒绝,port为只允许小于1024端口连接NIS
# 4. 启动ypserv
service ypserv start
# 5. 初始化数据库
/usr/lib/yp/ypinit -m
确认域名无误后按<Ctrl D>
然后输入y,之后会初始化数据库,数据库会保存在 /var/yp/<domain>
|
客户端设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| # 1. 安装NIS
apt update
apt install nis
# 2. 修改hosts文件
vim /etc/hosts
192.168.50.185 slave
192.168.50.79 master
# 3. 修改DNS信息
vim /etc/nsswitch.conf
在以下行后添加nis字段
passwd: compat systemd nis # 此处的nis都是自己加的
shadow: compat nis
group: compat systemd nis
gshadow: files nis
# 4. 修改配置文件
vim /etc/yp.conf
写入以下内容
#domain <此处写自己的域名> server <此处写nis服务器的ip>
domain master server 192.168.50.79
# 5. 启动服务
service ypbind start
|
修改密码
1
2
3
| yppasswd nisuser1
# 先输入旧密码, 然后输入两次新密码
/usr/lib/yp/ypinit -m # 更新数据库
|
使用autofs自动挂载home目录
Autofs与Mount/Umount的不同之处在于,它是一种守护程序。如果它检测到用户正试图访问一个尚未挂接的文件系统,它就会自动检测该文件系统,如果存在,那么Autofs会自动将其挂接。另一方面, 如果它检测到某个已挂接的文件系统在一段时间内没有被使用,那么Autofs会自动将其卸载。因此一旦运行了Autofs后,用户就不再需要手动完成文件系统的挂接和卸载。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # 1. 在所有需要挂载home目录的主机上安装autofs
apt update
apt install autofs
# 2. 创建配置文件
vim /etc/auto.master
写入以下内容
/home/nishome /etc/auto.nishome # 前边是挂载点,后边是指定挂载时用的配置文件
vim /etc/auto.nishome
写入以下内容
# 挂载目录 挂载文件类型及权限 :设备名称
* -rw 192.168.50.76:/mnt/home/home/&
# * 代表所有主机都可以挂载此目录
# rw是权限
# 192.168.50.76是nfs服务器,实验中用FreeNAS分享了一个NFS数据集
# /mnt/home/home/&是要挂载的目录在NFS服务器上的路径,其中'&'指代用户名
# 3. 启动autofs
service autofs start
最后效果就是在登录某台主机时,会自动将NFS服务器上自己用户名的home目录挂载到 /home/nishome/下边去,路径前缀在auto.master文件中给出
|
添加用户流程
- 在NIS master上创建用户
useradd -d /home/nishome/<nisusername> <nisusername> /bin/bash
- 在NIS master上为新创建的用户创建密码
passwd <nisusername>
- 在NIS master上更新数据库
/usr/lib/yp/ypinit -m
- 在FreeNAS上创建用户家目录
- 目录服务(Directory Serices)->网卡(NIS)->重建目录服务缓存(REBUILD DIRECTORY SERVICE CACHE)
- 存储(Storage)->池(Pools)->ADD Dataset, 添加一个数据集 -> Edit Permissions-> User和Group都设置为前边创建的用户,并选中 Apply permissions recursively-> SAVE
- 共享(Sharing)->Unix (NFS) Shares -> ADD, 选中前边创建的数据集路径,高级模式,Maproot User和Maproot Group都设置为前边创建的用户-> SAVE