我有一个远程分区,已使用 NFS 在本地安装。
'mount' 给出
192.168.3.1:/mnt/storage-pools/ on /pools type nfs (rw,addr=192.168.3.1)
在服务器上我有出口:
/mnt/storage-pools *(rw,insecure,sync,no_subtree_check)
然后我尝试
touch /pools/test1
ls -lah
-rw-r--r-- 1 65534 65534 0 Dec 13 20:56 test1
chown root.root test1
chown: changing ownership of `test1': Operation not permitted
我错过了什么?拔掉我的头发。
答案1
默认情况下,root_squash
导出选项处于打开状态,因此 NFS 不允许客户端的 root 用户以 root 身份在服务器上执行操作,而是将其映射到anonuid
和选项指定的用户/组 ID(默认值为 65534)。这可以与其他导出选项一起anongid
配置。/etc/exports
答案2
exports(5)
阅读有关“根挤压”的部分:
通常,当访问 NFS 服务器上的文件时,不希望客户端计算机上的 root 用户也被视为 root。为此,uid 0 通常被映射到不同的 id:所谓的匿名或 nobody uid。此操作模式(称为“root squashing”)是默认模式,可以使用 no_root_squash 关闭。
所以你要:
/mnt/storage-pools *(rw,insecure,sync,no_subtree_check,no_root_squash)
(修改了错别字)