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

时间:2012-01-04 22:22:56

标签: 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

我在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)

挂载工作正常,但挂载的文件全部由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

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

3 个答案:

答案 0 :(得分: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

用以下内容更改UID:

usermod -u 10000 tom
祝你好运!

答案 1 :(得分:1)

似乎这应该适用于Drobo的出口:

/ mnt / DroboFS / Shares 192.168.1.150(rw,all_squash,anonuid = NNN)

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

答案 2 :(得分:0)

/ etc / exports 更改为:

/mnt/DroboFS/Shares 192.168.1.150(rw,insecure)

然后,在NFS服务器上运行:

$ sudo exportfs -a

现在,当您在NFS客户端上以非root用户身份挂载目录时,它将使用适当的所有者和组进行挂载。