在 Ubuntu 17.04 版本上,我的 NFS 共享定义如下:
配置
在/etc/exports
:
/bottle/media 192.168.0.0/16(ro,all_squash,no_subtree_check,anonuid=65534,anongid=65534) 10.3.0.0/16(rw,all_squash,sync,no_subtree_check,anonuid=65534,anongid=65534)
共享卷的 UNIX 文件权限:
$ ls -al /bottle
total 5
drwxr-xr-x 3 root root 3 Sep 3 11:45 .
drwxr-xr-x 28 root root 4096 Sep 3 00:37 ..
drwxrwxr-x 2 nobody nogroup 2 Sep 3 11:45 media
确认
冉sudo exportfs
:
/bottle/media 192.168.0.0/16
/bottle/media 10.3.0.0/24
检查 NFS 服务器守护进程:
$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2017-09-03 12:09:47 BST; 16min ago
Process: 23350 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
Process: 23344 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
Process: 23337 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
Process: 23380 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 23374 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 23380 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4915)
Memory: 0B
CPU: 0
CGroup: /system.slice/nfs-server.service
Sep 03 12:09:47 monolith systemd[1]: Starting NFS server and services...
Sep 03 12:09:47 monolith systemd[1]: Started NFS server and services.
已验证 UID/GID 设置分别对应于nobody
和nogroup
:
$ id -u nobody
65534
$ getent group nogroup
nogroup:x:65534:
症状
NFS 服务器主机位于10.3.0.100
。客户端 (OSX Sierra v10.12.6) 位于10.3.0.102
。
我尝试使用 Finder 的“连接到服务器”对话框 () 进行连接cmd + k
,并在其中输入nfs://10.3.0.100
。
这样做会产生以下错误: You do not have permission to access this server
。
这是配置问题吗?我做错了什么?
答案1
为了使用 MacOS 连接到 NFS 共享,必须使用不安全标志定义共享。这意味着它允许从非标准端口(macOS 使用)进行连接。因此您的导出行将如下所示。
10.3.0.0/16 (rw,all_squash,sync,no_subtree_check,anonuid=65534,anongid=65534,insecure)
另外,从 mac 连接时(尤其是在 nfsv3 上),您必须连接到特定的导出文件夹,而不是根文件夹或仅仅是 IP。
nfs://10.3.0.100/bottle/media
应该可以解决问题!