mv失败但cp在nfs mount上成功
我正在尝试将文件从本地目录移动到CentOS 7服务器上的nfs安装目录.出口由FreeNAS提供.
两个目录都由当前用户拥有,至少755(nfs显示为777,但我不确定我是否相信). 我的fstab看起来像这样 host:/path/to/export /mnt/nfs nfs defaults 0 0 我无法移动文件 mv /local/file /mnt/nfs/file mv: cannot create regular file 'file': Operation not permitted 但是我可以复制并删除它 cp /local/file /mnt/nfs/file rm /local/file 安装输出 host:/path/to/export on /mnt/nfs type nfs (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=host,mountvers=3,mountport=908,mountproto=udp,local_lock=none,addr=host) 客户端上的目录权限 ls -ld /local /mnt/nfs drwxrwxrwx. 15 user user 17 Nov 28 08:32 /mnt/nfs/ drwxrwxrwx. 2 root root 17 Nov 29 12:20 /local 经过进一步调查后,这似乎与更改权限有关. mv使用它获取文件的权限,但是cp会创建一个从父目录继承权限的新文件.看来nfs mount不允许我chown文件,即使我是root或文件的所有者.所以现在我的问题是如何允许更改权限,或忽略mv中给出的权限. 解决方法
>您的密码/组数据库是否在客户端和客户端之间同步
服务器? >您是否在nfs客户端上看到nfs挂载目录上的任何文件已归属 通过 没人没人 您很可能在NFS服务器和NFS客户端之间遇到UID / GID之间的差异.我将基于一个简单的例子展示它是如何工作的. 假设您正在共享NFS客户端/ nfs_share,就像这样.请注意,任何人都可以写入nfs_share(777). [root@nfsserver nfs_share]# cat /etc/exports /nfs_share 192.168.0.52(rw,no_root_squash) [root@nfsserver nfs_share]# ls -ld /nfs_share drwxrwxrwx. 2 root root 4096 Nov 30 23:55 /nfs_share 像这样挂载在NFS客户端上 mount 192.168.0.51:/nfs_share /mnt 现在你有了名为dmitry的nfs服务器用户 [root@nfsserver nfs_share]# getent passwd|grep dmitry dmitry:x:500:500::/home/dmitry:/bin/bash [root@nfsserver nfs_share]# getent group|grep dmitry dmitry:x:500: 在您的nfs客户端上,您有用户helen [root@nfsclient ~]# getent passwd|grep helen helen:x:500:500::/home/helen:/bin/bash [root@nfsclient ~]# getent group|grep helen helen:x:500: 请注意,尽管这些用户不同,但它们具有相同的UID和GID. [helen@nfsclient mnt]$touch helen_client [helen@nfsclient mnt]$ls -lrt [helen@nfsclient mnt]$ls -lrt total 0 -rw-rw-r--. 1 nobody nobody 0 Nov 30 23:58 helen_client 在NFS客户端上,这个新文件将显示为nobody nobody所拥有.这是因为nfsidmap无法将client_user_name @ domain映射到server_user_name @domain. [root@nfsserver nfs_share]# ls -rlt total 0 -rw-rw-r--. 1 dmitry dmitry 0 Nov 30 23:58 helen_client 惊讶了吗? 现在让我们说我们有其他用户的UID / GID和名称在服务器和客户端之间匹配 [root@nfsserver mnt]# getent passwd|grep angelina angelina:x:501:501::/home/angelina:/bin/bash [root@nfsserver mnt]# getent group|grep angelina angelina:x:501: [angelina@nfsclient mnt]$getent passwd|grep angelina angelina:x:501:501::/home/angelina:/bin/bash [angelina@nfsclient mnt]$getent group|grep angelina angelina:x:501: 如果我在nfs客户端上以用户angelina的身份触摸文件 – 我将在服务器和客户端上看到正确的用户名/组 [angelina@nfsclient mnt]$pwd /mnt [angelina@nfsclient mnt]$touch angelina_1 [angelina@nfsclient mnt]$ls -l total 0 -rw-rw-r--. 1 angelina angelina 0 Dec 1 2016 angelina_1 -rw-rw-r--. 1 nobody nobody 0 Dec 1 00:16 helen_1 [root@nfsserver nfs_share]# pwd /nfs_share [root@nfsserver nfs_share]# ls -l total 0 -rw-rw-r--. 1 angelina angelina 0 Dec 1 00:27 angelina_1 -rw-rw-r--. 1 dmitry dmitry 0 Dec 1 00:16 helen_1 底线是NFSV4能够正常工作 >服务器和客户端密码/组数据库同步.最好使用ldap.>客户端和服务器应该就通用域名nfsidmap -d达成一致 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |