代码改变世界

linux之NFS服务

2018-10-15 10:54  烟雨楼人  阅读(441)  评论(0编辑  收藏  举报

NFS的功能:  局域网共享文件.

安装步骤:

1.安装nfs-ntils软件(yum install nfs-utils)

2.创建共享目录:(mkdir -p /nfsdir/nfs_test)

3.创建配置文件并编辑(/etc/exports)

vim /etc/exports   内容: /nfsdir  192.168.88.0/24(rw)  wq(保存退出)

4.启动服务(service nfs start)

5.客户端主机测试:showmount -e 192.168.88.4 

6.客户端挂载共享目录(先建共享目录并挂载)

Mkdir /mnt/nfs 然后 mount -t nfs 192.168.88.4:/nsfdir /mnt/nfs

共享文件夹nfs(客户端,服务器端是nfsdir)里的共享文件nfs_test就可访问了.ls /mnt/nfs (简单搭建成功,此时不可以在nfs目录里修改文件,可以拷贝到本地目录再修改)

说明:此时设置的是一个网段,如果要设置一个ip的权限,单独的写在前面(/etc/exports文件谁先读到谁生效.故写的时候有顺序.)

/nfsdir  192.168.88.21/24(rwx)192.168.88.0/24(rw) 

问题: 

1客户端的root用户不能往服务端传文件的解决办法?

 在服务端编辑: vim  /etc/exports

/nfsdir  192.168.100.0/24(rw,no_root_squash)  wq(保存退出)

再重启nfs服务即可:service nfs restart

说明:

① no_root_squashroot用户不压缩的意思

② root_squash:压缩root用户,将root通过网络访问时转换为nfsnobody用户(这就是为什么不能用root用户写入,这个是默认属性)

服务器端有同样uid用户,则就是该用户权限.若无,则是nfsnobody

    文件系统导出属性:

       rw:读写      ro:read-only

       async:异步(默认使用异步,同步的性能会非常差)

       sync:同步

       root_squash:压缩root用户,将root通过网络访问时转换为nfsnobody用户(这就是为什么不能用root用户写入,这个是默认属性)

       no_root_squash:不压缩用户(普通用户创建文件 实验?)

       all_squash:压缩所有用户

   exportfs导出nfs文件:    -a:操作所有文件系统    -ra:重新导出所有文件系统

   -ua:取消导出的所有文件系统               -v:显示详细信息

2.普通用户可以传文件的方法

 第一步:客户端创建一个oracle用户并指明uid

useradd  -u 1000  oracle

第二步:服务端创建一个和客户端的用户的uid一样的用户,用户名可以不同

useradd   -u 1000  haa

第三步:在服务端给用户haa授权,用setfacl的方式

[root@localhost nfsdir]# setfacl -m u:haa:rwx /nfsdir

setfacl: /nfsdir: Operation not supported

这是因为nfsdir已经挂载到了盘/dev/sdb5中,但是挂载默认不支持acl权限

Mount -o acl device_name mount_point

解决办法:按照上面的根目录挂载的方法重新的挂载一遍

客户端卸载 umount /mnt/nfs  

2 服务端停止服务 service nfs stop

3 服务端卸载 umount /nfsdir/

 4  服务端重新挂载mount -o acl /dev/sdb5  /nfsdir核心点

 5 服务端重启服务以及客户端重新挂载

第四步:服务端的nfs的重启

第五步:客户端的目录的卸载以及重新的挂载

说明:客户端查看到的是这样的-rw-rw-r-- 1 nobody nobody     0 Jun 27 07:00 123

服务端查看的是这样的-rw-rw-r-- 1 haa  mysql     0 Jun 27 07:00 123

这样因为在客户端是按照oracle来的,服务端是按照oracle的uid对应的haa用户来的普通用户可以传文件的方法

3. nfs自动挂载(vim /etc/fstab)

服务端:vim /etc/fstab

UUID="6225d0a4-8803-4e05-a19c-ccf1e7529b5b" /nfsdir ext4 defaults,acl 0 0

说明:defaults后面增加了acl是按照acl的方式进行挂载,保障后面设置权限不会报错

客户端:vim /etc/fstab

192.168.88.4:/nfsdir  /mnt/nfs  nfs  defaults,_netdev 0 0

说明: defaults后面的” _netdev”说明只是限制网络设备,只是挂载一次

光盘的自动挂载 vim  /etc/fstab

/dev/sr0 /mnt/rhel iso9660 defaults 0 0     然后:测试 mount  -a