在linux中,在一台IP为192.168.65.215的服务器上挂载nfs服务器的目录时报permission denied错。
错误信息如下所示:
[root@webdg1 ~]# mount -t nfs 192.168.15.56:/u02 /u02
mount: 192.168.15.56:/u02 failed, reason given by server: Permission denied
第一反应是nfs server的权限没配对或可能没授权此IP接入。但是去检查nfs server上配置情况是对15网段都是授权了的。
[root@htwebapp1 ~]# more /etc/exports
/u02 192.168.15.*(rw)
这种配置是根据经验和网上很多文档介绍的案例来写的,并且一直以来都是运行都是正确的。这里也不是所有的15网段的服务器都不能挂载这个目录的。在本环境中,一个15网段的服务器就能挂载这个nfs服务器的目录。
(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1731208
)
两者的区别在于出问题的服务器的网卡是双IP配置,而正常的服务器是单个IP配置。
那么,问题就可能是一个网卡多个IP导致的。
如果在nfs服务器上/etc/exports中,将需要挂载的服务器IP地址写死,如下所示:
[root@htwebapp1 ~]# more /etc/exports
/u02 192.168.15.215(rw)
这样就可以在215上挂载nfs服务器的u02目录了。
但需要挂载该目录的服务器有很多,是不能一一列出的。
因此这个方法不适用。
在nfs服务器上的/etc/hosts下也有挂载服务器15.215的主机名IP解析,根据网络上建议,将此条目注释掉,也能挂载。
这是另一种解决方法,但nfs服务器上hosts中是必须配置这个主机名IP解析条目的,此服务器上还有其他应用需要用到它。
因此,这个方法也不能采纳。
分析
我们猜测可能是NFS SERVER在 client请求挂载时解析 /etc/exports 时出错了。
我们并不很清楚NFS的原理,也没有能力去看它的源代码。但有一点,我们可以去看一下exports的帮助。
使用man exports一下,得到结果如下:
EXPORTS(5) Linux File Formats Manual EXPORTS(5)
NAME
exports - NFS file systems being exported (for Kernel based NFS)
SYNOPSIS
/etc/exports
DESCRIPTION
The file /etc/exports serves as the access control list for file systems which may be exported to NFS
clients. It is used by exportfs(8) to give information to mountd(8) and to the kernel based NFS file
server daemon nfsd(8).
The file format is similar to the SunOS exports file. Each line contains an export point and a whitespace-
separated list of clients allowed to mount the file system at that point. Each listed client may be imme-
diately followed by a parenthesized, comma-separated list of export options for that client. No whitespace
is permitted between a client and its option list.
Blank lines are ignored. A pound sign ("#") introduces a comment to the end of the line. Entries may be
continued across newlines using a backslash. If an export name contains spaces it should be quoted using
double quotes. You can also specify spaces or other unusual character in the export name using a backslash
followed by the character code as three octal digits.
Machine Name Formats
NFS clients may be specified in a number of ways:
single host
This is the most common format. You may specify a host either by an abbreviated name recognized be
the resolver, the fully qualified domain name, or an IP address.
netgroups
NIS netgroups may be given as @group. Only the host part of each netgroup members is consider in
checking for membership. Empty host parts or those containing a single dash (-) are ignored.
wildcards
Machine names may contain the wildcard characters * and ?. This can be used to make the exports
file more compact; for instance, *.cs.foo.edu matches all hosts in the domain cs.foo.edu. As these
characters also match the dots in a domain name, the given pattern will also match all hosts within
any subdomain of cs.foo.edu.
IP networks
You can also export directories to all hosts on an IP (sub-) network simultaneously. This is done
by specifying an IP address and netmask pair as address/netmask where the netmask can be specified
in dotted-decimal format, or as a contiguous mask length (for example, either ??/255.255.252.0?ˉ or
??/22?ˉ appended to the network base address result in identical subnetworks with 10 bits of host).
Wildcard characters generally do not work on IP addresses, though they may work by accident when
reverse DNS lookups fail.
从帮助文档中看,机器名称格式只有四种,我们使用192.168.15.*(rw)中"*"做通配符,是第一种"single host"用法。
但它没有说可以使用"*",只是我们根据习惯和网上得到经验配置出来的。
这种需要给多个nfs client挂载的需求,是可以这样配置。在/etc/exports中写入/u02 192.168.15.0/255.255.255.0(rw)或/u02 192.168.15.0/24(rw)。
小结
通过帮助文档的分析和这个问题解决过程可以得到这样的结论,很多nfs服务器上exports的配置都是不规范的,只是通配符"*"碰巧能用而已。规范的配置应是192.168.15.0/24或192.168.15.0/255.255.255.0。
分享到:
相关推荐
### SQL Plus libclntsh.so.11.1 Permission Denied 错误解决方法 #### 问题背景 在尝试运行 SQL Plus 工具时,可能会遇到一个错误提示:“cannot restore segment prot after reloc: Permission denied”,这通常...
关于操作db文件导出Failed to pull selection: open failed: Permission denied问题的处理方法在遇到这个问题之前,你可能连data这个目录都打不开。。 对此,解决办法是去到安卓的adb目录\Android\sdk\platform-...
出现这种问题, ①首先检查用户对应的角色名,然后看路径设置是否正确,有没有相关的权限,如果这些都没问题,然后就尝试下面的操作: ②重起FTP服务,最好从服务里面重启(不能根本解决); ③重新设置Server-U帐号和...
在压缩包中的“手机图案解锁 permission denied解决方案.txt”文件中,可能包含具体的步骤或代码,按照文件内容操作也能帮助解决问题。请先尝试上述通用方法,如果问题仍未解决,再查阅该文本文件。
本篇解决方法中,提到的“Permission denied”问题发生在尝试连接到UNIX socket文件“/root/jianshuvue/jianshu.sock”时。UNIX socket是一种在UNIX系统中用于进程间通信的机制,Nginx通过这种方式与后端的uWSGI应用...
Permission denied: 出现的原因的是:没有权限进行读、写、创建文件、删除文件等操作。 解决方法:输入命令 sudo chmod -R 777 /工作目录, 例如:sudo chmode -R 777 /home/HDD,此时就可以在该路径下进行一系列...
Permission Denied(解决方案).md
一、前言 最近在学习安卓,也碰到了各种各样的bug,这次的这个bug折腾了我一整个晚上!!所以整理出来让大家少栽跟头… 二、问题背景 实现一个简单的从模拟器的SD卡中读取数据实现音乐的播放暂停和停止 ...
然而,服务器在运行过程中可能会遇到各种权限问题,550 Permission denied是其中一种常见的错误提示,它意味着服务器拒绝了用户的请求,通常是因为没有足够的权限去执行操作。 首先,我们来分析一下问题现象。用户...
首先我要解释一下,很多时候出现这个问题,并不是你的文件有毛病,很可能是你代码读取的路径不对,这就要追究到代码本身。批量转化可以在json_to_dataset文件里直接运行代码实现。这个思路还要感谢我的一个师兄。...
PermissionDeniedError(解决方案)
下面将详细介绍这两种错误的含义、原因以及解决方法。 ### 一、13: Permission denied 当Nginx尝试访问某个文件或目录时,如果当前运行Nginx的用户(如nobody)没有足够的权限,就会出现`Permission denied`的错误...
NULL 博文链接:https://lanxing.iteye.com/blog/264088
打开终端直接输入 docker 命令时出现以下错误: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get ...解决办法: 将非root用户加入docker组 ...
在Linux环境下,特别是当错误信息显示为"(13: Permission denied)"时,通常与文件权限、索引文件缺失或SELinux策略有关。下面将详细介绍这三个可能导致403 Forbidden错误的原因及相应的解决办法。 一、缺少索引文件...