linux网络服务与配置实验三 NFS服务器配置
实验要求 1、/home/share 目录可读写,并且不限制用户身份,共享给192.168.8.0/24网段的所有主机;但仅有该文件/目录的建立者与root能够删除自己的目录或文件。 2、/home/zhidata 这个目录仅共享给192.168.8.7这台主机,以供该主机上面的zhi这个用户来使用(也就是说zhi在NFS服务器端和客户端上均有账号,且账号均为zhi); 3、/home/upload 这个目录做为192.168.8.0/24网段的数据上传目录,其中/home/upload的用户和所属组均为develop1,它的UID和GID均为222;
1.安装nfs-utils yum install nfs-utils 1.1 启动 rpcbind,nfs 命令: systemctl start rpcbind systemctl start nfs 2. 创建所需要的共享目录 2.1 创建/home/share 目录 任何人都可以在 /home/share 内新增、修改文件,但 仅有该 文件/目录的建立者与 root 能够删除自己的目录( 设置share权限的时候 加的是 1777,1即是冒险位,如果没有此冒险位,此目录下的所有文件所有用户均可读可写可执行,包括删除,但是加了此冒险位之后,此目录下的文件只有创建者与root可删除,在权限位上显示为rwt文件。) 2.2 创建/home/zhidate目录 2.3 创建zhi用户 2.4 修改zhidate目录权限及属主为用户zhi
2.5创建/home/upload目录(注意创建目录路径,例子中已经处于根目录下的home目录中) #先建立对应账号与组名及 UID #创建目录,修改属主 2.6 修改配置文件 /etc/exports 配置文件默认为空,需要加上共享目录条目(如图) 重启nfs服务,使用systemctl restart nfs 命令
只有重启nfs才能使用exportfs -v导出配置文件(确定你的共享目录已经创建,确定配置文件/etc/exports已修改且保存)
导出配置文件 2.7 看 NFS 服务器共享出来目录 2.8 关闭防火墙、selinux 关闭防火墙: systemctl stop firewalld 查看selinux状态:使用 getenforce SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态。Enforcing是默认状态,表示强制启用,Permissive是宽容的意思,即大部分规则都放行。Disabled是禁用,即不设置任何规则,只能通过setenforce命令来设置前面两种状态,而如果想修改为disable状态,需要修改配置文件,同时重启系统。Enforcing状态的值是1,permissive状态是0。
因此设置为permissive,命令就是: setenforce 0 3.客户端配置 3.1 客户端也要安装nfs-utils yum install nfs-utils 3.2 在客户端查看 NFS 服务器共享出来目录 [[email protected] ~]# showmount -e nfs 服务器IP地址 3.3 挂载/home/upload 目录到客户端/mnt/upload 目录下 #挂载 [[email protected] ~]# mkdir /mnt/upload [[email protected] localhost ~]# mount -t nfs 服务器IP:/home/upload /mnt/upload/ #查看挂载是否成功 [[email protected] localhost ~]# df -Ht
3.4 #客户端创建 develop1 用户 [[email protected] localhost ~]# groupadd -g 222 develop1 [[email protected] localhost ~]# useradd -g 222 -u 222 -M develop1 #测试创建文件:可以看到用 root 用户创建的文件属主仍是 develop1 [[email protected] localhost ~]$ touch test.txt 任 务 一 : #测试删除文件(因为前面在客户端设置share权限的时候 加的是 1777,1即是冒险位,如果没有此冒险位,此目录下的所有文件所有用户均可读可写可执行,包括删除,但是加了此冒险位之后,此目录下的文件只有创建者与root可删除,在权限位上显示为rwt) 在客户端share目录下(挂载服务器的/home/share目录): 首先用zhi用户创建zhi.txt文件,切换到ZHJ用户,删除文件失败,实现只有文件拥有着和root可以删除share目录下文件
其它两个共享目录的挂载、测试操作类似 (挂载并查看) 任务二: #测试zhidate共享目录只有192.168.121.133主机的zhi用户可以访问(结果以显示192.168.121.133 root用户不可访问共享目录zhidate,切换到zhi用户之后才可访问) 任务三: # /home/upload 这个目录做为192.168.121.0/24网段的数据上传目录,其中/home/upload的用户和所属组均为develop1,它的UID和GID均为222
(截图显示/home/upload的用户和所属组均为develop1,develop1的UID和GID均为222)
1、RPC服务重新启动后,为何要重新启动NFS服务?( 你懂的 )
答:NFS系统是通过网络来进行数据传输,所以必定会使用端口来进行网络传输。NFS的传输端口是随机选择的,并且通过RPC协议来实现客户端的协调。 RPC(远程调用服务)。因为NFS支持的功能特别多,而不同的功能都会使用不同的程序来启动,每启动一个功能端口就会用一些端口来传输数据,因此,NFS的功能所对应的端口才无法固定,而是随机取用一些未被使用的小于1024的端口来进行传输。(常规服务端口:0~655535,1024一下,系统服务常用) 所以,客户端要准确的获得NFS服务器所使用的端口,就需要RPC服务。 NFS RPC最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,让客户端可以链接到正确的端口上去,从而实现数据传输。 当NFS服务启动时会随机取用数个端口,并主动向RPC服务注册取用的相关端口信息,这样,RPC服务就可以知道每个端口所对应的NFS功能了,然后RPC服务使用固定的端口号111来监听NFS客户端提交的请求,并将正确的NFS端口答应给NFS客户端,这样一来,就可以让NFS客户端与服务端进行数据传输了 服务端需要NFS服务和RPC服务,并且需要先启动RPC服务,客户端只需要RPC服务。 并且,当正式连接建立之后,RPC服务可以关掉,但当有新的请求出现时,必须开启RPC服务。 |