一、原因
主盘/u01/apps/hesp/images 是属于root用户,共享盘查看时的用户是主盘的root用户,因为没有赋权,所以共享盘创建文件时提示无权限;
主盘
[root@scyf-web images]# cat /etc/passwd
......
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
......
[root@scyf-coll images]# ls -lrt
total 488
drwxr-xr-x. 2 root root 6 Nov 23 2022 bak
-rw-r--r--. 1 root root 484474 Nov 23 2022 appMarket.zip
drwxr-xr-x. 6 root root 78 Dec 1 2022 appMarket
drwxr-xr-x. 4 root root 103 Mar 22 2023 material
drwxr-xr-x. 3 root root 19 Aug 29 09:50 docxToPdf
-rw-r--r--. 1 root root 11316 Nov 16 17:04 移动终端编码清单.xlsx
共享盘
[root@scyf-coll images]# ls -lrt
total 488
drwxr-xr-x. 2 root root 6 Nov 23 2022 bak
-rw-r--r--. 1 root root 484474 Nov 23 2022 appMarket.zip
drwxr-xr-x. 6 root root 78 Dec 1 2022 appMarket
drwxr-xr-x. 4 root root 103 Mar 22 2023 material
drwxr-xr-x. 3 root root 19 Aug 29 09:50 docxToPdf
-rw-r--r--. 1 root root 11316 Nov 16 17:04 移动终端编码清单.xlsx
[root@scyf-coll images]# touch 123.sh
touch: cannot touch ‘123.sh’: Permission denied
二、解决办法
1. 将主盘的文件所属权限修改为用户nfsnobody;
主盘
[root@scyf-web images]# chown -R nfsnobody:nfsnobody images/
[root@scyf-coll images]# ll
total 488
drwxr-xr-x. 6 nfsnobody nfsnobody 78 Dec 1 2022 appMarket
-rw-r--r--. 1 nfsnobody nfsnobody 484474 Nov 23 2022 appMarket.zip
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Nov 23 2022 bak
drwxr-xr-x. 3 nfsnobody nfsnobody 19 Aug 29 09:50 docxToPdf
drwxr-xr-x. 4 nfsnobody nfsnobody 103 Mar 22 2023 material
-rw-r--r--. 1 nfsnobody nfsnobody 11316 Nov 16 17:04 移动终端编码清单.xlsx
共享盘
[root@scyf-coll images]# ll
total 488
drwxr-xr-x. 6 nfsnobody nfsnobody 78 Dec 1 2022 appMarket
-rw-r--r--. 1 nfsnobody nfsnobody 484474 Nov 23 2022 appMarket.zip
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Nov 23 2022 bak
drwxr-xr-x. 3 nfsnobody nfsnobody 19 Aug 29 09:50 docxToPdf
drwxr-xr-x. 4 nfsnobody nfsnobody 103 Mar 22 2023 material
-rw-r--r--. 1 nfsnobody nfsnobody 11316 Nov 16 17:04 移动终端编码清单.xlsx
2.配置共享盘root用户可修改权限
#主盘 配置NFS配置文件
[root@scyf-coll images]# vim /etc/exports
/data/apps/hesp/images/ 10.107.8.0/24(rw,sync,no_root_squash)
#使配置立即生效
[root@scyf-coll images]# exportfs -r
参数 | 说明 |
ro | 只读访问 |
rw | 读写访问 |
sync | 所有数据在请求时写入共享 |
async | nfs 在写入数据前可以响应请求 |
secure | nfs 通过 1024 以下的安全 TCP/IP 端口发送 |
insecure | nfs 通过 1024 以上的端口发送 |
wdelay | 如果多个用户要写入 nfs 目录,则归组写入(默认) |
no_wdelay | 如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置 |
hide | 在 nfs 共享目录中不共享其子目录 |
no_hide | 共享 nfs 目录的子目录 |
subtree_check | 如果共享 /usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认) |
no_subtree_check | 不检查父目录权限 |
all_squash | 共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录 |
no_all_squash | 保留共享文件的 UID 和 GID(默认) |
root_squash | root 用户的所有请求映射成如 anonymous 用户一样的权限(默认) |
no_root_squash | root 用户具有共享根目录的完全管理访问权限 |
anonuid=xxx | 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID |
anongid=xxx | 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID |