我们有一台本地服务器,它导出一个NFS
共享,用作网络中 Linux 主文件夹的父目录。用户通过LDAP
(在同一台服务器上运行)进行身份验证。
身份验证工作正常,并且用户登录到客户端计算机后,共享上的主文件夹也能正常工作。
但是,有一个问题:客户端上的 root 用户无法访问用户文件夹。这是一个问题,因为即使像sudo apt-get
root 无法写入用户文件夹这样简单的事情也会产生错误。
我认为问题可能是NFS
服务器上的主文件夹权限为 0700,因此只有用户自己可以访问。因此,我将此权限更改为 0770,同时将服务器上用户文件夹的组所有权设置为 0,即 root。我认为这应该可行,因为 0 也是客户端计算机上 root 的组 ID。
不幸的是,这并没有解决我的问题,root 仍然无法访问用户的文件夹:
root@Mule:/home/users# ll
total 28
drwxr-xr-x 7 team team 4096 Aug 20 14:18 ./
drwxr-xr-x 3 root root 4096 Oct 29 10:43 ../
drwxrwx--- 30 mfb root 4096 Jan 30 17:49 mfb/
root@Mule:/home/users#
root@Mule:/home/users# cd mfb
bash: cd: mfb: Permission denied
root@Mule:/home/users#
root@Mule:/home/users# ll mfb
ls: cannot open directory mfb: Permission denied
root@Mule:/home/users#
root@Mule:/home/users# whoami
root
root@Mule:/home/users#
root@Mule:/home/users# mount | grep users
bison:/media/profiles on /home/users type nfs (rw,hard,intr,addr=192.168.0.2)
root@Mule:/home/users#
我没什么主意了。有什么建议可以让我启用 root 来访问客户端上的用户主文件夹(mfb
在此示例中)?
答案1
来自出口手册页:
通常,当访问 NFS 服务器上的文件时,不希望客户端计算机上的 root 用户也被视为 root。为此,uid 0 通常被映射到不同的 id:所谓的匿名或 nobody uid。此操作模式(称为“root squashing”)是默认模式,可以使用 no_root_squash 关闭。
答案2
您需要no_root_squash
在导出时进行设置。否则,root 用户的访问将映射到匿名用户(通常是 nobody)。
答案3
您需要检查 NFS 挂载是如何导出的。可能已启用“root_squash”。
来自文档:root_squash — 防止远程连接的 root 用户拥有 root 权限并为他们分配用户 nfsnobody 的用户 ID。
no_root_squash 选项关闭 root 压缩
更多信息请点击这里:http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-nfs-server-config-exports.html