我有以下设置:有一台 Debian 10 PC,用户 A(uid:1000,gid:1000),想要挂载由运行 TrueNAS(12.0-U8.1)的服务器提供的 NFS 共享,该服务器由用户 B(uid:1006,gid:1008)拥有。我必须使用 NFS,因为此共享由 rsnapshot 使用,它需要软链接和硬链接。两台机器都在同一个 LAN 内。我发现这个论坛条目,但我不明白如何具体安装共享。
我到底要写什么
- /etc/fstab
- /etc/idmapd.conf
- mount 命令
- 还有其他配置文件吗?
通过以下设置,我可以安装共享,但不能修改。
在 /etc/fstab 中:
server:/mnt/pool/backup /mnt/server/backup nfs vers=4,addr=10.0.0.X,clientaddr=10.0.0.Y,noauto,rw,_netdev,users 0 0
/etc/idmapd.conf:
[General]
Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if it differs from FQDN minus hostname
Domain = dom
[Mapping]
Nobody-User = nfsnobody
Nobody-Group = nfsnogroup
[Translation]
Method = static
[Static]
[email protected] = A
挂载命令:
/sbin/mount.nfs -v -o uid=1006,gid=1008 server:/mnt/pool/backup /mnt/server/backup
IP 地址由路由器静态分配。
答案1
由于不涉及 kerberos,NFS 将使用 AUTH_SYS,这意味着服务器将使用uid
并由gids
客户端发送。没有办法告诉客户端更改飞行中的 ID(除非您在客户端上创建一个 uid/gid 为 1006/1008 的用户)。只有idmapd
在使用 kerberos 时才会涉及,否则GETATTR
调用会返回 sting 主体作为文件所有者和所有者组。
要修复您的问题,您必须选择:创建匹配用户或强制服务器将客户端主机映射到给定的 uid/gid 组合。在常规 NFS 服务器上,您应该/etc/exports
按如下方式更新文件:
/data 10.0.0.Y(rw,squash_all,anonuid=1006,anongid=1008)
TrueNAS 可能有类似的选择。