我正在尝试使用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来将其挂载到客户端计算机上?
答案 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用户身份挂载目录时,它将使用适当的所有者和组进行挂载。