当前位置: 首页 > 编程日记 > 正文

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

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


NFS配置要求:

1、 oracle文件写入到NFS Server端,注意权限要与oracle端一致。

2、 Oracle端目录文件所属用户为oracleuid500 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权限相关设置问题:

首先检查clientgid 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 Serverrw权限设置,因为一直记得设置的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

相关文章:

吴文俊人工智能科学技术奖:陆汝钤院士、百度王海峰等获奖

12月9日上午&#xff0c;被誉为“中国智能科学技术最高奖”的吴文俊人工智能科学技术奖在苏州举行颁奖典礼。本届吴文俊人工智能奖共对70项人工智能成果授奖。其中&#xff0c;中国科学院院士、中国科学院数学与系统科学研究院研究员陆汝钤成为首位吴文俊人工智能最高成就奖获得…

河南科技大学c语言章节作业答案,河南科技大学C语言试题

c语言试题,基本上是题库。上机作业用的。大家好好把握。C程序的运行环境和简单C源程序的调试&#xff0c;实验报告(共 题)&#xff0c;用时(127分33秒)&#xff0c;成绩(A)1、 有如下程序&#xff1a; #include"stdio.h" main( ) { int a8;printf("%d,%5d,%-5d#…

qinyu.blog.51cto.com里的好文章,比尔盖茨

世纪枭雄比尔盖茨的王者传奇儿时&#xff0c;他便躁动不安&#xff0c;顶着梳不顺的头发&#xff0c;在竞技中缕缕获胜。少年英才没有机会慢慢成长&#xff0c;21岁&#xff0c;他创办了微软&#xff0c;从此走上IT业的颠峰之路&#xff0c;垄断了13年的财富榜首&#xff1b;32…

Clean-Code: 注释

别给糟糕的代码加注释-----------------重新写吧 这是书中的关于注释一章的第一句话&#xff0c;怎么说呢&#xff0c;这句话个人感觉很对&#xff0c;但是实际上却很少这么做&#xff0c; 有几个原因&#xff1a; 糟糕的代码不是自己写的&#xff0c;别人写的代码&#xff0…

在c语言中,函数中的自动变量可以赋初值,每调用一次,赋一次初值,计算机二级考试 程序设计基础试题及答案三...

《程序设计基础》考试试卷三1. 判断下面标识符中哪个是C语言中合法的用户定义标识符&#xff1a;A. a-bB. #abdC. typedefD. _max2. …b?在内存中占个字节&#xff0c;“B”在内存中占个字节。A. 1B. 2C. 3D. 43. 下列表达式的值哪些不等于0&#xff1f;A. 2>>1B. ~a&am…

免费报名 | WPS专家教你文本分类在企业中的应用实践

文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题&#xff0c;很多时候&#xff0c;我们需要将文本信息进行分类&#xff0c;或提相关的接口以供外部进行文本上传&#xff0c;在针对于用户所上传的文档信息就需要进行文档内容的分类&#xff0c;那么针对于这…

[ZT]如何取得客户端的Windows登录用户名?

1. 在ASP.NET中专用属性&#xff1a; 获取服务器电脑名&#xff1a;Page.Server.ManchineName 获取用户信息&#xff1a;this.User.Identity.Name (IIS安全設置必須使用集成Windows驗證) 获取客户端电脑名&#xff1a;Page.Request.UserHostName 获取客户端电脑IP…

C#使用WIN32API来高效率的遍历文件和目录(转)

我们有时需要遍历某个目录下的文件和子目录&#xff0c;可以使用System.IO.DirectoryInfo.GetDirectories或 GetFiles来获得目录下的所有的文件和子目录&#xff0c;当这个目录下的内容比较多时&#xff0c;这个操作就比较耗时间&#xff0c;有时我们仅仅需要知道某个目录下是否…

c语言1变A,c语言那些细节之a+1和a+1的区别

首先a是一个数组名&#xff0c;当看到这个a与&a时&#xff0c;一般我们的理解都是这个数组的首地址。没错&#xff0c;如果加上打印的话&#xff0c;确实两个值是一样的。不过&a是整个数组的首地址&#xff0c;a则是数组首元素的地址&#xff0c;虽然值一样&#xff0c…

【收藏清单】AI学习资料汇总——你想要的AI资源,这里都有

本文汇总了TinyMind站内AI资料类热门文章TOP10&#xff0c;欢迎大家各取所需。来源&#xff1a;https://www.tinymind.cn/ 1、【AI入门者必看】——人工智能技术人才成长路线图 入门AI的两大方式与进阶AI的十大路线&#xff0c;吐血之作&#xff0c;人手必备。路线图可在文末…

25,000,000行的代码就问你敢不敢动?!

你经历过绝望吗&#xff1f;近日&#xff0c;Hacker News 上发起了一个名为“你见过最糟糕的代码是什么&#xff1f;”&#xff08;https://news.ycombinator.com/item?id18442637&#xff09;的话题&#xff0c;引发了无数网友回忆讨论&#xff0c;甚至还再次让软件巨头 Orac…

c语言规定预处理命令必须以什么开头,C语言规定预处理命令必须以___________开头...

在定温定容下&#xff0c;语言规开反应NH4Cl (s) NH3 (g) HCl (g)达平衡&#xff0c;加入惰性气体平衡不移动05580041&#xff1a;定预若a、b均为int型变量,且a100,则for (b100;a!b;a,b) printf(----\n)是死循环。()处理05710012&#xff1a;以下正确的描述是( )。命令成年早期…

MySQL 微秒慢查询补丁

作/译者&#xff1a;叶金荣&#xff08;Email: &#xff09;&#xff0c;来源&#xff1a;http://imysql.cn&#xff0c;转载请注明作/译者和出处&#xff0c;并且不能用于商业用途&#xff0c;违者必究。原文出自&#xff1a;The new cool MySQL patch has landed! Check your…

Win10 15063 开始运行不保存历史记录原因和解决方法

在Win10 1703的时候你也许会发现开始运行以后&#xff0c;再次打开就没有任何历史记录了&#xff0c;常规方法是桌面-右键-个性化-开始-显示最常用的应用..可是打开是灰色的不可选.. 其实这个问题很好解决&#xff0c;在win10 15063隐私里面有一个设置的原因&#xff0c;请跟随…

CCNA培训课总结笔记--交换机的基本配置(十三)

实验目的:熟悉交换机的基本配置,学会在交换机上划分VLAN及如何将接口划分到指定的VLAN.本实验主要是用模拟器DynamipsGUI及3640的IOS文件做的实验,所以配置的命令有些会有出入.实验设备:3640交换机系列实验内容:其实交换机的基本操作包括设置特权登陆密码,设置控制台的密码等都…

TensorFlow 2.0发布在即,高级API变化抢先看

作者 | Sandeep Gupta, Josh Gordon, and Karmel Allison整理 | 非主流、Jane出品 | AI科技大本营【导语】早在今年 8 月的时候&#xff0c;谷歌开源战略师 Edd Wilder-James 在一封公开邮件中表示正在研发 TensorFlow 2.0&#xff0c;并将于今年晚些时候发布预览版。在 2018 年…

mp4 android自动播放,Android 使用VideoView播放MP4的简单实现

使用VideoView播放MP4播放示例实现简单的播放功能&#xff0c;播放手机本地的MP4文件。不依赖任何第三方框架&#xff0c;不添加任何防腐剂。添加一个系统自带的控制条。申请权限读取存储中的MP4文件准备布局文件在frag_video_view.xml中放置VideoView&#xff1b;为了让内容居…

Sublime-text theme 颜色主题

主题文件下载&#xff1a;Monokai.rar 替换办法&#xff1a; Preferences -> Browser packages -> Color Scheme - DefalutPreferences -> Browser packages -> Color Scheme - Defalut 覆盖 文件物理位置(win7)&#xff1a; C:\Users\用户名\AppData\Roaming\S…

android 自定义radiobutton 样式,RadioButton自定义点击时的背景颜色

一、应用场景&#xff1a;在使用 RadioButton 时&#xff0c;有时我们会需要自定义点击时改变背景颜色的效果。效果图&#xff1a;RadioButton自定义背景颜色.jpg二、实现步骤&#xff1a;1、新建一组 RadioButton &#xff1a;android:layout_width"match_parent"an…

如何让网页不受电信114劫持

每当出现输入网页错误时&#xff0c;电信总会把你劫持到他所在的网页下&#xff0c;如下&#xff1a;[url]http://game1.zj.vnet.cn/url1.php?MTwww.dsdsddsds.com[/url]看了这张老脸就觉得浑身不舒服。能不能想个办法不让他出现呢&#xff1f;嘿嘿&#xff0c;其实很简单&…

“男医生,女护士?”消除偏见,Google有大招

编译整理 | 若奇出品 | AI科技大本营如何消除 AI 带来的性别偏见是个令人头疼的问题&#xff0c;那究竟有没有方法去解决&#xff1f;12 月 6 日&#xff0c;Google 宣布他们迈出了减少 Google 翻译中性别偏见的第一步&#xff0c;并且还详细介绍了如何为 Google 翻译上的性别中…

Web Developer中文版下载

Web Developer是一款非常优秀的网页调试工具。Web Developer有IE和Firefox两个版本&#xff0c;主要功能表现在几个重要的方面&#xff1a;对页面中的文本、图像、媒体文件进行控制&#xff0c;对网页所应用的CSS文件的id与class辅助查看&#xff0c;表格辅助查看&#xff0c;可…

位置服务与地图应用

位置服务与地图应用: 位置服务&#xff08;Location Based Services,LBS&#xff09;又称为服务或基于位置的服务。Andorid平台支持提供位置服务的API&#xff0c;在开发过程中主要用到LocationManager 和LocationProviders对象。 为开发能够提供位置服务&#xff0c;首先需要得…

20分钟教你搞懂Git!

Git 是最流行的版本管理工具&#xff0c;也是程序员必备的技能之一。本文就来教你 20 分钟搞懂 Git&#xff01;以下为译文&#xff1a;尽管每天你都会用到Git&#xff0c;但也有可能搞不懂它的工作原理。为什么Git可以管理版本&#xff1f;基本命令git add和git commit到底在干…

android 长按赋值功能,android实现WebView中长按选中复制文本操作

啥都不说了&#xff0c;老司机直接移步GITHUB看源码吧&#xff1a;https://github.com/deaboway/AndroidWebViewTextSelect万一不work&#xff0c;一定不是代码的问题&#xff0c;你可以自查链接中的如下情况CSS控制页面文字不能被选中user-select:none;body{-moz-user-select:…

如何找回丢失的Vista系统“休眠”菜单

如何让Vista系统“休眠”菜单重见天日一些使用Windows Vista的朋友为了节省磁盘空间&#xff0c;在命令提示符下使用命令关闭休眠功能。但是如果再用相同的方法打开休眠功能时&#xff0c;就会发现&#xff0c;即使恢复了功能&#xff0c;“休眠”菜单还是看不见&#xff0c;这…

go3--常量和类型转换

/* Go中不存在隐式转换&#xff0c;所有类型转换必须显式声明 转换只能发生在两种相互兼容的类型之间 类型转换的格式&#xff1a;<ValueA> [:] <TypeOfValueA>(<ValueB>)全局变量可以使用var&#xff08;&#xff09;的形式&#xff0c;局部变量不可以使用v…

android倒计时实现方法,Android实现倒计时方法汇总

Android开发中经常会有倒计时的功能&#xff0c;下面将总结出常见的集中实现方式。1.直接使用Handler的消息机制来实现xml布局中文件如下&#xff1a;android:layout_width"match_parent"android:layout_height"match_parent"android:orientation"hor…

今晚8点直播 | 详讲NLP的经典应用实践——文本分类

文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题&#xff0c;很多时候&#xff0c;我们需要将文本信息进行分类&#xff0c;或提相关的接口以供外部进行文本上传&#xff0c;在针对于用户所上传的文档信息就需要进行文档内容的分类&#xff0c;那么针对于这…

谈论 嵌入式系统

引用 嵌入式系统嵌入式系统http://www.lumit.org/index.htm嵌入式相关的网站http://www.mcu123.com/news/Article/web/uc/200611/3939.html转载于:https://www.cnblogs.com/stoneresearch/archive/2008/10/21/4336381.html