问题
我对挂载的NFS共享有只读访问权限。
使用sudo
不允许写入。
Synology NAS:DS214> id username
uid=1026(username) gid=100(users) groups=100(users),101(administration)
没有squash (没有映射)DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
所有squash (将所有用户映射到admin )DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)
Ubuntu客户端:$ cat /etc/fstab
10.1.1.214:/volume1/Files /mnt/nfs/Files nfs rw,user,auto 0 0
$ id username
uid=1000 gid=1000(username) groups=1000(username), <etc>
$ ls -n /mnt/nfs
drwxrwxrwx 9 0 0 4096 Sep 25 01:28 Files
$ ls -n /mnt/nfs/Files
drwxr-xr-x 11 1026 100 4096 Sep 24 22:05 Data
使用sudo
enabled write access,我可以在挂载的NFS共享中打开文件, sudo vi /mnt/nfs/Files/Data/test.file
但即使使用sudo
,也不能将更改写入文件,the vi Error message upon :w command is :! "test.file" E212: Can't open file for writing
答案1
要解决这个问题,可以执行多种操作之一:
在NAS上,将文件的所有者更改为1000
,你需要创建特定的帐户,这对其他服务有何影响。
将本地用户的UID更改为1026
。
由于是唯一一个访问服务器上的文件的人,你可以让服务器假设所有请求都来自正确的UID,为此,NFS有选项all_squash
,它告诉服务器将所有请求映射到匿名用户,由anonuid,anongid
指定。
添加optionss all_squash,anonuid=1026,anongid=100
在/etc/exports
中导出。
在我看来,Samba是实现这个的最简单方法。
答案2
执行showmount -e 10.1.1.214
查看导出选项,Permission denied
错误来自NFS服务器本身,尝试将选项从rw,user,auto
更改为defaults
。