生产中NFS案例记录---写入权限解决过程
NFS配置要求:
1、 将oracle文件写入到NFS Server端,注意权限要与oracle端一致。
2、 Oracle端目录文件所属用户为oracle,uid:500 gid 501。
格式约定:
命令显示过程     文字说明  特别注意
 
NFS挂载问题一: Client端挂载后无权限写入
一、server端配置:
[root@db-0415 ~]# useradd  -u 501 -g 500 oracle   #新建用户指定gid uid
[root@db-0415 tmp]# tail -1 /etc/passwd #确认新建用户是否符合要求
oracle:x:501:500::/home/oracle:/bin/bash
[root@db-0415 ~]# vim /etc/exports    #编辑nfs主配置文件,读写权限,所有用户映射为指定用指定匿名用户映射的gid uid.                 
/opt/tmp  10.0.0.0/16 (rw,sync,all_squash.anonuid=501,anongid=500)
[root@db-0415 ~]# exportfs  -rv     #重新加载NFS共享配置
exportfs: No options for /opt/tmp 10.0.0.0/16: suggest 10.0.0.0/16(sync) to avoid warning
exportfs: No host name given with /opt/tmp (rw,sync,all_squash,anonuid=501,anongid=500), suggest *(rw,sync,all_squash,anonuid=501,anongid=500) to avoid warning
exporting 10.0.0.0/16:/opt/tmp
exporting *:/opt/tmp
[root@db-0415 ~]# showmount  127.0.0.1  #本地查看NFS共享列表,报错
mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive
[root@db-0415 ~]# /etc/init.d/portmap start  #启动portmap
Starting portmap:                                          [  OK  ]
[root@db-0415 ~]# /etc/init.d/nfs start     #启动nfs服务,这个时候还有报错
Starting NFS services:  exportfs: No options for /opt/tmp 10.0.0.0/16: suggest 10.0.0.0/16(sync) to avoid warning
exportfs: No host name given with /opt/tmp (rw,sync,all_squash,anonuid=501,anongid=500), suggest *(rw,sync,all_squash,anonuid=501,anongid=500) to avoid warning
                                                           [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[root@db-0415 ~]# chkconfig  portmap on    #配置nfs两个必须服务随机启动
[root@db-0415 ~]# chkconfig  nfs on      
[root@db-0415 ~]# showmount -e  127.0.0.1 #server端本地再次查看共享列表,似乎正常没有问题。
Export list for 127.0.0.1:
/opt/tmp (everyone)
二、Client 挂载测试无法写入:
[root@NFSclient1 ~]# mount -t  nfs 10.0.4.15:/opt/tmp /opt/oracle/tmp/ #挂载共享目录
[root@NFSclient1 ~]# cd /opt/oracle/tmp/
[root@NFSclient1 tmp]# touch tt   #测试写入报权限拒绝
touch: cannot touch `tt': Permission denied
三、开始排查NFS权限相关设置问题:
首先检查client端gid uid 与server端对应正常。
[root@NFSclient1 tmp]# su - oracle  
-bash-3.2$ id
uid=501(oracle) gid=500(oinstall) groups=500(oinstall)
-bash-3.2$ exit
logout
第二、检查client本地文件系统针对目录/opt/oracle/tmp/读写权限,并使用oracle用户写入文件测试。
[root@NFSclient1 oracle]# ll /opt/oracle/tmp/ -d  #查看tmp目录权限
drwxr-xr-x  0 abc4ftp oinstall 0 Mar 20 16:53 /opt/oracle/tmp/
[root@NFSclient1 oracle]# su - oracle
-bash-3.2$ cd /opt/oracle/  
-bash-3.2$ touch 1
-bash-3.2$ rm 1             #测试权限正常
#可是挂载以后还是报权限错误:
[root@NFSclient1 ~]#  mount -t  nfs  10.0.4.15:/opt/tmp  /opt/oracle/tmp/
[root@NFSclient1 ~]# cd /opt/oracle/tmp/
[root@NFSclient1 tmp]# touch tt
touch: cannot touch `tt': Permission denied
[root@NFSclient1 tmp]# ll -d
drwxr-xr-x  2 oracle oinstall 4096 Mar 20 17:35 .
[root@NFSclient1 tmp]# ls
tt
[root@NFSclient1 tmp]# ll
total 0
-rw-r--r--  1 oracle oinstall 0 Mar 20 17:36 tt
[root@NFSclient1 tmp]# rm tt
rm: remove write-protected regular empty file `tt'? y
rm: cannot remove `tt': Permission denied
第三、确认NFS Server端rw权限设置,因为一直记得设置的rw权限,总觉着这没有问题。但其他方面都没有问题,配置文件参数较多需要细心再看看。
[root@db-0415 ~]# cat /etc/exports
/opt/tmp  10.0.0.0/16 (rw,sync,all_squash,anonuid=501,anongid=500)
[root@db-0415 ~]# cat /var/lib/nfs/etab  #主要记录NFS共享目录的完整权限设置值。
/opt/tmp        *(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=501,anongid=500)
# 乍一看似乎两个文件内容没有问题,仔细对比之发现主配置文件ip段后多了一个空格“ 10.0.0.0/16 (rw ”,这个应该就是问题所在。
第四、重新编辑配置文件exports :
 
[root@db-0415 ~]# vim /etc/exports
/opt/tmp  10.0.0.0(rw,sync,all_squash,anonuid=501,anongid=500)
[root@db-0415 ~]# exportfs  -rv #重新加载NFS配置,输出已无报错。
exporting 10.0.0.0:/opt/tmp
 
[root@db-0415 tmp]# cat /var/lib/nfs/etab  #再次确认,与上面的区别
/opt/tmp        10.0.0.0/16(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=501,anongid=500)
第五、Client再次挂载测试:
[root@NFSclient1 ~]# mount -t  nfs 10.0.4.15:/opt/tmp /opt/oracle/tmp/
[root@NFSclient1 ~]# cd /opt/oracle/tmp/
[root@NFSclient1 tmp]# touch tt
[root@NFSclient1 tmp]# ls
test  tt
[root@NFSclient1 tmp]# ll
total 4
-rwxrwxr-x  1 oracle oinstall 5 Mar 20 18:03 test
-rw-r--r--  1 oracle oinstall 0 Mar 21 10:16 tt
[root@NFSclient1 tmp]# rm -rf test
[root@NFSclient1 tmp]# rm -rf tt  
 #权限测试符合要求,至此问题解决。但下面还有一些细节处理。 
[root@NFSclient1 tmp]# chkconfig --list portmap #检查客户端portmap是否随机启动
portmap         0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@NFSclient1 tmp]# chkconfig portmap on    #设置随机启动
[root@NFSclient1 tmp]# chkconfig --list portmap #确认设置正确
portmap         0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@NFSclient1 tmp]# umount  /opt/oracle/tmp/ #继续后面的测试,先卸载
 
四、设置NFS随机启动挂载:
1、编辑fstab
[root@NFSclient1 tmp]# cd /etc
[root@NFSclient1 etc]# cp fstab fstab.bak$(date +%F)  #备份fstab文件
[root@NFSclient1 etc]# vim fstab              #编辑fstab加入以下内容
10.0.4.15:/opt/tmp on /opt/oracle/tmp type nfs (rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,nfsvers=3,timeo=600,actimeo=0,addr=10.0.4.15)  
2、确认修改内容
[root@NFSclient1 etc]# diff fstab fstab.bak2012-03-21  
10d9
< 10.0.4.15:/opt/tmp      /opt/oracle/tmp/        nfs     rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0             0 0
3、挂载测试。
[root@NFSclient1 etc]# mount -a  #从fstab文件挂载文件系统,同时也是对刚才编辑内容的检查,如果没有报错就证明一切正常。此步骤很关键,若配置有误,没及时检查发现问题,系统重启后可能无法正常进入系统。
[root@NFSclient1 etc]# mount  #再次确认挂载内容正常。
………………省略内容………………
10.0.4.15:/opt/tmp on /opt/oracle/tmp type nfs (rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,nfsvers=3,timeo=600,actimeo=0,addr=10.0.4.15)
#再次确认权限正常
[root@NFSclient1 etc]# cd /opt/oracle/tmp/
[root@NFSclient1 tmp]# touch test
[root@NFSclient1 tmp]# ll
total 0
-rw-r--r--  1 oracle oinstall 0 Mar 21 10:30 test
[root@NFSclient1 tmp]# rm test
rm: remove regular empty file `test'? y
至此已经满足要求,NFS配置完毕。
问题一解决过程涉的知识点:
NFS Server和client端的配置
1、修改NFS挂载匿名账户。
2、NFS挂载权限问题分析解决过程。
3、设置NFS开机自动挂载。
4、创建指定uid、gid用户
5、NFS服务相关命令mount、showmont、exportfs、chkconfig
6、记录NFS server完整权限的配置文件/var/lib/nfs/etab
 
挂载问题二: Client端挂载后一直不动要等很久才有错误输出,原因因为没有启动portmap服务。
[root@study ~]# mount -t  nfs 10.0.4.15:/opt/tmp /mnt 
mount.nfs: Input/output error
[root@study ~]# /etc/init.d/portmap status
portmap is stopped
[root@study ~]# /etc/init.d/portmap start
Starting portmap:                                          [  OK  ]
[root@study ~]# mount -t  nfs 10.0.4.15:/opt/tmp /mnt
[root@study ~]# chkconfig portmap on
问题二结论:
NFS client 必须要启用portmap服务
NFS server 必须要先启动portmap服务然后启用nfs服务。
注意设置随机启动。
总结:
NFS权限需要注意三个条件:
1、用户账户的UID GID及对应用户名组名。
2、NFS服务器端主配置文件/etc/exports允许读写权限。
3、文件系统需要具有读写的权限,特别说明这个权限不是以用户名组名为根据,了解文件系统的同学应该知道,这个是比对uid、gid为准的。
本文转自pandazhai 51CTO博客,原文链接:http://blog.51cto.com/dreamway/1045581

生产中NFS案例记录---写入权限解决过程相关推荐

  1. 记一次rsyslog日志记录失败的解决过程

    操作系统:ubuntu14.04 rsyslog.conf文件配置:文件末尾添加 local1.* /var/log/local1.log 表示将自定义的设备local1的所有日志级别信息都保存到 文 ...

  2. Android U盘插拔监听详细版以及U盘写入权限解决办法

    首先,代码都是用在项目里的,肯定是可用的.踩过的一些坑一起会写在下面.如果有更好的方法,请告知我. 用广播接收U盘插板的状态,其中插板的判断可以加入"android.intent.actio ...

  3. 硬盘插到群晖上使用之后再插回Windows就不识别了,记录一次解决过程

    事情是这样的:最近买了个带白群晖的猫盘,和一个4T西数红盘,把硬盘插上一顿折腾之后可以用了.但是我的重点在挂pt,群晖在这方面很难用,而且已有的资源没法直接从Windows上复制过去只能老老实实用很慢 ...

  4. linux----------今天又遇到一个奇葩的问题,就是linux文件的权限已经是777了但是还是没有写入权限,按照下面的命令就解决了

    linux----------今天又遇到一个奇葩的问题,就是linux文件的权限已经是777了但是还是没有写入权限,按照下面的命令就解决了 参考文章: (1)linux----------今天又遇到一 ...

  5. NFS客户端挂载目录后无写入权限的解决方案

    NFS客户端挂载目录后无写入权限的解决方案 参考文章: (1)NFS客户端挂载目录后无写入权限的解决方案 (2)https://www.cnblogs.com/mh-study/p/11148790. ...

  6. 双心一键获取winsxs的写入权限,解决VC运行库安装error1935错误

    @Echo off title 双心一键获取winsxs的写入权限,解决VC运行库安装error1935等错误 set path=%path%;%~dp0 setlocal EnableDelayed ...

  7. weiphp mysql权限_weiphp 3.0创建插件提示错误解决办法 提示您没有创建目录写入权限,...

    环境 linux weiphp3.0 步骤: 创建weiphp插件的时候提示 目录不可写入 解决方法: 查看是/Admin/Plugin/create.html 这个文件提示的 找到 Applicat ...

  8. 【服务器管理】mount.nfs: Stale file handle的解决办法

    [服务器管理]mount.nfs: Stale file handle的解决办法 一.服务器端出bug的情况 一.服务器端正常.客户端出bug的情况 鉴于本人需要开始服务器管理生涯,故此整理一系列关于 ...

  9. NFS挂载文件系统出现nfsnobody解决方式

    最近在开发时使用nfs远程挂载目录时,出现了图片上传失败,经过一系列排查. 查看了上传目录,所属用户却是nfsnobody,如下所示: $ ll -d /web/img drwxr-xr-x 7 nf ...

最新文章

  1. [JS][dfs]题解 | #迷宫问题#
  2. 一文读懂什么是数字孪生?
  3. 分公司访问列表(ACL)
  4. 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结
  5. 智慧树python答案内蒙古科技大学_2020年_知到_打开企业形象设计之门(内蒙古科技大学)_答案护理人文修养_智慧树_期末答案...
  6. 如何找到在SAP社区上经过SAP官方认可比较有影响力的SAP从业者
  7. MongoDB最新4.2.7版本三分片集群修改IP实操演练
  8. netbeans插件_如何编写NetBeans插件
  9. centos环境访问php显示源码,CentOS 6.8 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展...
  10. 【语义分割】数据增强方法(原图与标签同时扩增)
  11. Navicat远程连接服务器mysql,先后报错10060,10061
  12. 单龙芯3A3000-7A1000PMON研究学习-(4)撸起袖子干-makefile(a)
  13. js导出excels表格.XLSX
  14. linux移动硬盘hd0,怎样将UbuntuLinux系统放到移动硬盘?
  15. Python基础知识——5、字典
  16. Windows下vc开发chrome浏览器工程的一点粗浅理解和封装
  17. Java下变量大小写驼峰、大小写下划线、大小写连线转换
  18. 接口自动化测试之接口测试基础
  19. [HNOI 2008] 神奇的国度 kingdom
  20. 高级API 快速入门之第七章 本地模拟下载文件

热门文章

  1. cvSaveImage保存图像
  2. 【C】linux下切换工作目录至程序所在目录
  3. 【Qt】Qt中使用ssl时报错:qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
  4. ajax的auto是true,一个AJAX自动完成功能的js封装源码[支持中文]
  5. python ffmpeg pipe_ffmpeg-python通过pipe与librosa进行数据流交互
  6. 硬盘温度70度正常吗_70多岁老年人原来血压160,现在130正常吗?医生为你分析实情...
  7. java exception源码_Java异常之 Error 和 Exception
  8. c语言动态迁移mysql,flask-migrate动态迁移数据库
  9. mysql的优化之table_open_cache 篇_mysql性能优化之table_open_cache
  10. 5页面返回上个页面定位_5个步骤,画好页面流程图