【NFS故障】共享的文件无法执行

1、问题描述


这里我将文件传入nfs的共享目录中,随即要运行目录中的脚本从而去导入对应的镜像,

但是这里它提示ctr执行这个文件表示权限拒绝。

2、排查


(1)提权

既然文件权限不允许执行,我猜测是不是文件的所有者和当前用户不一致导致的无法运行,于是我为了试验,对文件增加了777权限,想要试验下。

额......但是失败了,也不允许我去对文件权限进行操作。

(2)检查nfs配置文件

我看了下exports文件哈,有如下内容:


/nfsdata/ 10.0.0.0/24(rw)


这里表示在这个网段的机器中可以对此目录中的文件进行读写操作

这边我问了下ai,然后得出了下面的结论

结论

nfs为了安全,默认情况下会开启一个名为root_squash的机制,表示如果你是使用root用户访问的文件情况下,nfs会将你的root用户匿名为一个匿名用户,通常是nfsnobodynobody,然后你的系统中这两个用户也没有对应的权限,所以你便无法进行操作。

------

而相对来说,还有一个名为no_root_squash的配置,意思与上面相反,如果是root用户,则不会将root转换为匿名用户,而是继续使用root用户的权限去操作和执行命令,而用此方法可以解决以上问题。

【注意】建议临时使用下,长期使用可能存在安全隐患。

3、如何解决


需要在exports配置文件中,增加no_root_squash配置

/nfsdata/ 10.0.0.0/24(rw,no_root_squash)

然后对nfs服务进行重启后试验

systemctl restart nfs

这时的问题就解决了。

相关推荐
吴声子夜歌8 分钟前
Shell编程实例——高级脚本编程(一)
linux·运维·网络·shell
Huangjin007_1 小时前
【Linux 系统篇(二十一)】进程(九):进程等待 wait/waitpid、status状态参数
linux·运维·服务器
螺蛳粉 螺蛳粉2 小时前
mysql的备份与恢复
linux·运维·数据库·mysql
ao-weilai2 小时前
Linux网络编程:Socket UDP
linux·服务器·网络·c++
可乐鸡翅yeah_2 小时前
混合内容 Mixed‑Content 安全策略,HLS HTTPS 页面加载 HTTP 资源排错实战
运维·ffmpeg·音视频·媒体·m3u8
爱吃香菜的初学者2 小时前
九.Linux——文件操作
linux
园长的牧歌2 小时前
Ubuntu 打开应用在导航栏没有图标是个齿轮
linux·ubuntu
曦夜日长2 小时前
Linux系统篇,进程概念(四):内核链表的深度理解、进程优先级的底层理解
linux·运维·服务器·php
‎ദ്ദിᵔ.˛.ᵔ₎2 小时前
Linux 库制作与原理
linux
Wang's Blog2 小时前
Java 接入Redis: Redis下载与源码编译安装
java·服务器·redis