使用Webmin挂载NFS拒绝权限(Mac OSX + Ubuntu设置)

use*_*003 0 ubuntu mount nfs webmin osx-mavericks

目标

我有以下设置 -

  • Home Server运行Ubuntu 13.10
  • 笔记本电脑运行Mac OSX 10.9(小牛队)

我正在尝试导出Home Server目录〜/ Documents作为可以从我的mac笔记本电脑访问的NFS挂载

Ubuntu安装程序

我在Ubuntu上使用Webmin来创建NFS导出.为了暂时只测试访问权限,我允许任何主机名连接读/写访问权限.

Webmin在下面创建了以下配置 /etc/exports

/home/jeeves/Documents        (insecure,no_subtree_check,no_root_squash,rw,nohide)
Run Code Online (Sandbox Code Playgroud)

Mac OX 10.9笔记本电脑设置

我将远程目录挂载到本地目录, /private/nfs

sudo mount -t nfs 192.168.1.219:/home/jeeves/Documents /private/nfs 
Run Code Online (Sandbox Code Playgroud)

一切正常,我可以/private在Finder中看到"Dcouments" .

但是,我无法进入该目录

jeeves:~ $ cd /private/nfs/
-bash: cd: /private/nfs/: Permission denied
Run Code Online (Sandbox Code Playgroud)

我有webmin设置权限作为读/写(rw)并且它不过滤任何IP或主机名,那么访问该目录还需要什么?

在此先感谢您的帮助!

编辑:

这是我的Webmin设置.

在此输入图像描述

Webmin不会让我选择4版的NFS版本,大概是因为我只安装了NFS v3 nfsstat

jeeves@HAL:~$ nfsstat
...
Server nfs v3:
null         getattr      setattr      lookup       access       readlink     
25        5% 28        6% 0         0% 126      29% 211      48% 0         0% 
...
Run Code Online (Sandbox Code Playgroud)

Dar*_*783 6

您可能遇到数字用户ID的问题:您的ubuntu系统上的数字用户ID与Mac上的数字用户ID不匹配.使用NFS,您通常必须确保您的数字用户ID在所有系统中以某种方式相同.在家庭/个人系统上,用户ID往往随意分配,没有任何同步,这会导致NFS出现问题.

由于这是一个家庭服务器,如果你相信每个连接到你的NFS服务器的人,一个可能的快速,简单和肮脏,丑陋和kludgy修复是打开权限,允许每个人和所有人读/写/删除文件(也不能做到这一点在企业环境中,很明显):

在您的Ubuntu系统上,以给定顺序登录jeeves(不要sudo或使用任何其他帐户),打开终端窗口并运行命令:

cd /home/jeeves/Documents
find . -type d -print0 | xargs -0 chmod 777
find . -type f -print0 | xargs -0 chmod a+rw
Run Code Online (Sandbox Code Playgroud)

但是,这假设NFS设置为允许访问不受信任的用户(在webmin中,"将不受信任的用户视为"设置为默认值,我不确定这是什么).

请注意,使用上述命令,Mac创建的文件和目录的所有者将在Ubuntu上显示为数字用户(因为Ubuntu系统可能没有任何用户/etc/passwd对应于Mac数字ID,Ubuntu将只显示原始数字ids).

答案很长:

当您在jeevesUbuntu系统上创建帐户时,Ubuntu为其分配了一些数字用户ID.当您在Mac上创建用户帐户时,Mac为其分配了一个数字用户ID,这可能与在Ubuntu系统上分配的数字不同.注意,用户名(例如,"jeeves")是用户方便的; Ubuntu和Mac都没有在内部使用它们,而是使用用户ID.NFS使用这些数字ID来确定所有权/权限(在Ubuntu框中).

  • 如果ids匹配,则使用"用户"权限.

  • 如果id不匹配:

    • (可以使用"组"权限,但这不太可能,我不打算讨论.)

    • 使用"其他"权限.请注意,在创建文件/目录时,如果在Ubuntu框中找不到(Mac)用户ID,则通常会获得看似由"数字"所有者拥有的文件; 您看到的数字是Mac正在使用的数字,您看到的数字是因为该ID不会出现在Ubuntu中/etc/passwd.

IIRC,Ubuntu使用022的umask,这意味着只有所有者/home/jeeves/Documents才能写/创建文件和目录; 其他人都拥有只读权限.除非您以某种方式在您的框之间同步用户ID,否则您不太可能拥有相同的用户ID,因此您将获得权限问题.

由于这是一个家庭服务器,上面提到的最简单的解决方法是摆脱安全性并允许每个人和所有人访问您的文件.当然,由于显而易见的原因,这是令人反感的.

正确的解决方法是确保所有用户ID在所有系统之间同步,但这可能是家庭环境中的问题.此外,一旦使用帐户,更改用户ID是有问题的; 虽然这可以做到,但必须小心谨慎,因为你可能会把你的系统搞得一团糟.我不打算详细介绍.

编辑:修复部分句子.