NFS网络安装:将所有者设置为特定帐户

Mat*_*hew 7 permissions mount nfs nas

好吧,我对这些东西感到非常困惑,所以真正的描述性答案会受到赞赏,特别是如果它们使整个装置不那么神奇且更具可预测性.

我正在尝试使用nfs安装我的Drobo-FS NAS以获得比使用cif更好的性能.

drobo正在运行一些精简的linux发行版.

在客户端计算机上的/ etc/fstab内部(Ubuntu,IP:192.168.1.150)

# Mount Drobo
192.168.1.100:/mnt/DroboFS/Shares/public /media/drobonfs nfs rw,soft,proto=tcp,users 0 0
Run Code Online (Sandbox Code Playgroud)

我已经在drobo上安装了unssd并通过ssh访问.这是服务器计算机上的导出文件(Drobo-FS,IP 192.168.1.100):

# Allow access for client machine
/mnt/DroboFS/Shares 192.168.1.150(rw,no_root_squash)
Run Code Online (Sandbox Code Playgroud)

挂载工作正常,但挂载的文件全部由root拥有,大多数文件权限设置为744.客户端上挂载中显示的文件权限与服务器上的实际权限相匹配.例如:

client$ sudo chmod 123 /media/drobonfs/somefile
client$ ls -l /media/drobonfs/somefile
---x-w--wx 1 root root 0 2012-01-04 14:15 /media/drobonfs/somefile

drobo$ ls -l /mnt/DroboFS/Shares/public/somefile
---x-w--wx    1 root     root            0 Jan  4 14:15 /mnt/DroboFS/Shares/public/somefile
Run Code Online (Sandbox Code Playgroud)

在每个命令前写sudo是一个拖累,我想了解发生了什么,所以如何将所有者/组设置为我的帐户而不是根目录,将其挂载到客户端计算机上?

小智 5

挂载共享时,主机系统的userID(UID)映射到客户端的userID(UID).

在客户端上,映射的用户(基于userID)将成为已安装共享的所有者.

您的问题是由于主机使用其他UID然后使用客户端引起的.

您可以通过定义/etc/nfs.map文件来解决此问题:

/etc/nfs.map

这看起来像:

# remote local gid 500 1000 # drobo client uid 500 2003 # drobo client

因此,在使用NFS时,您需要确保主机和客户端上的用户之间存在UID/GID匹配.请阅读以下文章:http://www.kernelcrash.com/blog/nfs-uidgid-mapping/2007/09/10/

解决此问题的另一个好方法是通过/etc/passwd在两个系统上查看此文件来查看主机和客户端系统上的UID .

或输入:

id tom
Run Code Online (Sandbox Code Playgroud)

用以下内容更改UID:

usermod -u 10000 tom
Run Code Online (Sandbox Code Playgroud)

祝好运!


Kyl*_*nes 2

看起来这应该适用于 Drobo 的导出:

/mnt/DroboFS/Shares 192.168.1.150(rw,all_squash,anonuid=NNN)
Run Code Online (Sandbox Code Playgroud)

其中NNN是您在客户端上的数字用户 ID。