我有两台服务器,client
并且server
扮演着相当明显的角色:server
托管 NFS 共享并client
安装它。在client
被叫的几个用户之间有一个共享组,shared
该组也存在于 上server
。我对server
共享的权限如下所示:
user@server $ ls -al /export/share/
drwxrwsr-x+ 3 shared shared 4096 Apr 19 01:25 .
drwxr-xr-x 3 root root 4096 Apr 12 20:10 ..
Run Code Online (Sandbox Code Playgroud)
目标非常明确,我希望该shared
组的所有成员都能够在此目录中创建、写入和删除文件。在客户端,ls -la
挂载目录的 a 导致相同的结果。
NFS 导出文件server
如下所示:
/export/share 10.0.0.0/24(rw,nohide,insecure,no_subtree_check,async)
Run Code Online (Sandbox Code Playgroud)
client
in上的安装/etc/fstab
看起来像这样:
10.0.0.1:/export/share /mnt/share nfs _netdev,noatime,intr,auto 0 0
Run Code Online (Sandbox Code Playgroud)
输出mount
来自client
:
10.0.0.1:/export/share on /mnt/streams type nfs (rw,noatime,intr,vers=4,addr=10.0.0.1,clientaddr=10.0.0.2)
Run Code Online (Sandbox Code Playgroud)
但是,我似乎仍然无法使用组中的用户在该目录中创建文件。
例如,用户jack
:
user@server $ id jack
uid=1001(jack) gid=1001(jack) groups=1001(jack),1010(shared)
Run Code Online (Sandbox Code Playgroud)
如果我尝试触摸 上挂载文件夹中的文件client
,权限将被拒绝:
user@client $ sudo -u jack touch /mnt/share/a
touch: cannot touch `/mnt/share/a': Permission denied
Run Code Online (Sandbox Code Playgroud)
为什么这不能按预期工作?jack
因为他是shared
组的成员,所以我不应该能够像在这个文件夹中那样创建文件和文件夹吗?