nfs == network file system
1.nfs安装
服务端安装:
[root@kry132 ~]# yum -y install rpcbind nfs-utils
rpcbind:用于通信
nfs-utils:nfs程序
客户端安装:
[root@Kry135 ~]# yum -y install nfs-utils
2.创建一个共享目录(服务端)
[root@kry132 ~]# mkdir /data/nfsdata
[root@kry132 ~]# chmod 777 /data/nfsdata/
创建一个测试文件:
[root@kry132 ~]# touch /data/nfsdata/nfstest
3.共享目录配置(服务端)
编辑配置文件:
[root@kry132 ~]# vim /etc/exports
添加以下内容:
/data/nfsdata:共享目录
192.168.0.135:共享给那个,可以写成网段192.168.0.0/24
4.启动相关服务(服务端)
[root@kry132 ~]# /etc/init.d/rpcbind start
[root@kry132 ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd:
5.查看共享目录,共享给谁(客户端)
[root@Kry135 ~]# showmount -e 192.168.0.132
Export list for 192.168.0.132:
/data/nfsdata 192.168.0.135
如果报错:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
请关闭防火墙,或者配置防火墙规则。
6.挂载(客户端)
[root@Kry135 ~]# mount -t nfs 192.168.0.132:/data/nfsdata /data
7.查看磁盘(客户端)
是同df -h查看
[root@Kry135 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 2.4G 16G 13% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 190M 27M 153M 15% /boot
192.168.0.132:/data/nfsdata
9.5G 583M 8.5G 7% /data
使用mount -l 查看挂载情况
[root@Kry135 ~]# mount -l|grep /data
192.168.0.132:/data/nfsdata on /data type nfs (rw,vers=4,addr=192.168.0.132,clientaddr=192.168.0.135)
8.测试
[root@Kry135 ~]# echo 123 >> /data/nfs2
[root@kry132 ~]# cat /data/nfsdata/nfs2
123
情景:由于nfs默认的用户跟群组是"nfsnobody",如果nfs server 共享目录不具有777权限,客户端通过一般用户写入数据,那么就出出现无权限。但是我们又不可能开放服务端共享目录777,这样不安全,就需要修改用户跟群组。
9.修改nfs默认用户群主(服务端)
[root@kry132 ~]# vim /etc/exports
添加红色部分内容:
all_squash:表示禁用左右登录者
anonuid:指定客户端存在用户UID
anongid:指定客户端存在的群组GID
重启:
[root@kry132 ~]# service nfs restart
也可使用:
[root@kry132 ~]# exportfs -arv
10.重新挂载(客户端)
[root@Kry135 ~]# umount /data
[root@Kry135 ~]# mount -t nfs 192.168.0.132:/data/nfsdata /data
如果在客户端写入东西太慢,那么在挂载的时候就降低nfs版本
mount -t nfs -onolock,nfsvers=3 192.168.0.132:/data/nfsdata /data
nfsvers=3:指定版本为3
11.测试(客户端)
[root@Kry135 ~]# cd /data/
[root@Kry135 data]# touch 22.txt #创建一个文件查看所属主,跟所属群组
[root@Kry135 data]# ll
total 8
-rw-r--r--. 1 apache apache 0 Jun 28 14:12 22.txt #所属主跟所属群组都是apache
-rw-r--r--. 1 nfsnobody nfsnobody 4 Jun 28 10:53 nfs2
-rw-r--r--. 1 nfsnobody nfsnobody 2 Jun 28 10:52 nfstest
对比用户
[root@Kry135 data]# cat /etc/passwd |grep 48
apache:x:48:48:Apache:/var/www:/sbin/nologin
补充内容:
不限制root用户
[root@kry132 ~]# vim /etc/exports
添加红色部分内容:
1.nfs安装
服务端安装:
[root@kry132 ~]# yum -y install rpcbind nfs-utils
rpcbind:用于通信
nfs-utils:nfs程序
客户端安装:
[root@Kry135 ~]# yum -y install nfs-utils
2.创建一个共享目录(服务端)
[root@kry132 ~]# mkdir /data/nfsdata
[root@kry132 ~]# chmod 777 /data/nfsdata/
创建一个测试文件:
[root@kry132 ~]# touch /data/nfsdata/nfstest
3.共享目录配置(服务端)
编辑配置文件:
[root@kry132 ~]# vim /etc/exports
添加以下内容:
/data/nfsdata 192.168.0.135(rw,sync) |
192.168.0.135:共享给那个,可以写成网段192.168.0.0/24
参数值 | 内容说明 |
rw ro | 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。 |
sync async | sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘! |
no_root_squash root_squash | 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行! |
all_squash | 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦! |
anonuid anongid | anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。 |
4.启动相关服务(服务端)
[root@kry132 ~]# /etc/init.d/rpcbind start
[root@kry132 ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd:
5.查看共享目录,共享给谁(客户端)
[root@Kry135 ~]# showmount -e 192.168.0.132
Export list for 192.168.0.132:
/data/nfsdata 192.168.0.135
如果报错:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
请关闭防火墙,或者配置防火墙规则。
6.挂载(客户端)
[root@Kry135 ~]# mount -t nfs 192.168.0.132:/data/nfsdata /data
7.查看磁盘(客户端)
是同df -h查看
[root@Kry135 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 2.4G 16G 13% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 190M 27M 153M 15% /boot
192.168.0.132:/data/nfsdata
9.5G 583M 8.5G 7% /data
使用mount -l 查看挂载情况
[root@Kry135 ~]# mount -l|grep /data
192.168.0.132:/data/nfsdata on /data type nfs (rw,vers=4,addr=192.168.0.132,clientaddr=192.168.0.135)
8.测试
[root@Kry135 ~]# echo 123 >> /data/nfs2
[root@kry132 ~]# cat /data/nfsdata/nfs2
123
情景:由于nfs默认的用户跟群组是"nfsnobody",如果nfs server 共享目录不具有777权限,客户端通过一般用户写入数据,那么就出出现无权限。但是我们又不可能开放服务端共享目录777,这样不安全,就需要修改用户跟群组。
9.修改nfs默认用户群主(服务端)
[root@kry132 ~]# vim /etc/exports
添加红色部分内容:
/data/nfsdata 192.168.0.135(rw,sync,all_squash,anonuid=48,anongid=48) |
all_squash:表示禁用左右登录者
anonuid:指定客户端存在用户UID
anongid:指定客户端存在的群组GID
重启:
[root@kry132 ~]# service nfs restart
也可使用:
[root@kry132 ~]# exportfs -arv
10.重新挂载(客户端)
[root@Kry135 ~]# umount /data
[root@Kry135 ~]# mount -t nfs 192.168.0.132:/data/nfsdata /data
如果在客户端写入东西太慢,那么在挂载的时候就降低nfs版本
mount -t nfs -onolock,nfsvers=3 192.168.0.132:/data/nfsdata /data
nfsvers=3:指定版本为3
11.测试(客户端)
[root@Kry135 ~]# cd /data/
[root@Kry135 data]# touch 22.txt #创建一个文件查看所属主,跟所属群组
[root@Kry135 data]# ll
total 8
-rw-r--r--. 1 apache apache 0 Jun 28 14:12 22.txt #所属主跟所属群组都是apache
-rw-r--r--. 1 nfsnobody nfsnobody 4 Jun 28 10:53 nfs2
-rw-r--r--. 1 nfsnobody nfsnobody 2 Jun 28 10:52 nfstest
对比用户
[root@Kry135 data]# cat /etc/passwd |grep 48
apache:x:48:48:Apache:/var/www:/sbin/nologin
补充内容:
不限制root用户
[root@kry132 ~]# vim /etc/exports
添加红色部分内容:
/data/nfsdata 192.168.0.135(rw,sync,no_root_squash) |
编辑回复