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

问题描述 投票:7回答:3

好吧,我对这些东西感到很困惑,因此,真正的描述性答案将不胜感激,尤其是当它们使整个装裱的东西变得不可思议且更可预测时。

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

drobo正在运行一些精简的Linux发行版。

在客户端计算机上的/ etc / fstab内部(IP地址为192.168.1.150的Ubuntu)

# Mount Drobo
192.168.1.100:/mnt/DroboFS/Shares/public /media/drobonfs nfs rw,soft,proto=tcp,users 0 0

我在drobo上安装了unfsd,并可以通过ssh访问。这是服务器计算机(IP地址为192.168.1.100的Drobo-FS)上的导出文件:

# 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挂载到客户端计算机上?

permissions mount nfs nas
3个回答
5
投票

安装共享时,主机系统的用户ID(UID)映射到客户端的用户ID(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
投票

似乎在Drobo上的导出中应该可以使用这种方法:

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

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


0
投票

/ etc / exports更改为:

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

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

$ sudo exportfs -a

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

© www.soinside.com 2019 - 2024. All rights reserved.