NFS 问题

NFS 问题

NFS 问题

我正在尝试在几乎全新安装的 Ubuntu 18.04 Server 上安装网络驱动器,但遇到了一些令人费解的行为。

我以 root 身份挂载驱动器,并列出权限:

# mount xxx.xxx.xxx.xxx:/my/share /mnt/nfs
# ls /mnt
drwxrwxr-x  1   user    user    nfs

# cd /mnt/nfs

到目前为止看起来不错!(您cd马上就会明白我为什么这样做……)

我以普通用户身份登录,user并尝试开展我的业务:

$ ls /mnt
drwxrwxr-x  1   user    user    nfs

$ cd /mnt/nfs
cd: test: Permission denied

$ ls /mnt
d---------  1   user    user    nfs

呃……权限怎么了?幸好这个过程是可逆的……好吧,只有root尝试了才行……

# ls /mnt
d---------  1   user    user    nfs

# cd /mnt/nfs
# pwd
/mnt/nfs

# ls /mnt
drwxrwxr-x  1   user    user    nfs

知道发生了什么事吗?我该如何解决?我完全不知所措。

值得注意的是,这是我第二台发生这种情况的装有 Ubuntu 18.04 Server 的机器,两台机器都几乎是开箱即用的。

笔记:命令输出是模拟的,但几乎直接从服务器获取。(即:硬链接报告的数量ls可能不正确,我省略了...目录,但权限,所有者等是正确的)

答案1

这是 的一个功能NFS,称为“Root squashing”。请参阅http://www.troubleshooters.com/linux/nfs.htm这部分 ” User ID Mapping Options”。

添加了“Root 压缩”功能,以防止root其他系统访问rootNFS 服务器上的文件。NFS 协议没有任何身份验证,会盲目接受 NFS 数据包,表示“我是 [ UID=root, GID=root] 将此数据写入/etc/passwd”,而无需“Root 压缩”。有了“Root 压缩”,数据包就会变成“我是 [ UID=nobody, GID=nobody] 将此数据写入/etc/passwd”,很多更安全的命令(将会失败)。

相关内容