如何允许特定用户权限写入NFS分区?
我在我的localhost上安装了一个NFS共享(Fedora安装),我可以以root身份读写,但我无法以apache用户身份编写,即使我localhost上的共享中的所有文件和目录也是如此和远程主机由apache拥有.
例如,我通过/ etc / fstab中的这一行安装了它:
remotehost:/data/media /data/media nfs _netdev,soft,intr,rw,bg 0 0
这两个地点都归apache所有:
[root@remotehost ~]# ls -la /data total 24 drwxr-xr-x. 6 root root 4096 Jan 6 2011 . dr-xr-xr-x. 28 root root 4096 Oct 31 2011 .. drwxr-xr-x 4 apache apache 4096 Jan 14 2011 media [root@localhost ~]# ls -la /data total 16 drwxr-xr-x 4 apache apache 4096 Dec 7 2011 . dr-xr-xr-x. 27 root root 4096 Jun 11 15:51 .. drwxrwxrwx 5 apache apache 4096 Jan 31 2011 media
但是,当我尝试编写为apache用户时,我收到“Permission denied”错误.
[root@localhost ~]# sudo -u apache touch /data/media/test.txt' touch: cannot touch `/data/media/test.txt': Permission denied
但当然它可以正常工作.我究竟做错了什么?
解决方法
NFS根据用户ID授权操作,而不是用户名.为了能够在NFS客户端上写入/ data / media,您需要确保localhost上的apache和remotehost上的apache具有相同的数字用户ID.
帖子中的文件列表不确认.
实际上localhost列表说mountpoint / data / media由apache @ localhost拥有.
[root@localhost ~]# ls -la /data ... drwxrwxrwx 5 apache apache 4096 Jan 31 2011 media
远程列表显示共享资源/数据/媒体由apache @ remotehost拥有.
[root@remotehost ~]# ls -la /data drwxr-xr-x 4 apache apache 4096 Jan 14 2011 media
如果apache @ localhost和apache @ remotehost的数字用户ID不同,则该目录将不可写.
您可以使用命令ls -lna来检查数字用户ID.