Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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
我正在尝试将文件从本地目录移动到CentOS 7服务器上的nfs安装目录.出口由FreeNAS提供.

两个目录都由当前用户拥有,至少755(nfs显示为777,但我不确定我是否相信).

我的fstab看起来像这样

host:/path/to/export /mnt/nfs         nfs     defaults        0 0

我无法移动文件

@H_836_20@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挂载目录上的任何文件已归属
通过

没人没人
>你能从服务器和客户端发布nfsidmap -d的输出吗?提示使用NFSV4输出时应该匹配.

您很可能在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客户端上

@H_836_20@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.
那么如果我在Nfs共享上作为用户Helen文件触摸会发生什么?

[Helen@nfsclient mnt]$touch Helen_client
[Helen@nfsclient mnt]$ls -lrt
[Helen@nfsclient mnt]$ls -lrt
@R_47_10586@l 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.
而现在休战的那一刻.我们来看看nfs服务器上的文件所有者是什么.

[root@nfsserver nfs_share]# ls -rlt
@R_47_10586@l 0
-rw-rw-r--. 1 dmitry dmitry 0 Nov 30 23:58 Helen_client

惊讶了吗?
然而实际上并没有什么奇怪的.这按预期工作.
NFS服务器无法映射用户Helen,但收到的是UID和GID.所以它用UID 500和GID 500创建了文件(因为文件夹是世界可写的),它被映射到NFS服务器上的dmitry:dmitry.

现在让我们说我们有其他用户的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
@R_47_10586@l 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
@R_47_10586@l 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达成一致

大佬总结

以上是大佬教程为你收集整理的mv失败但cp在nfs mount上成功全部内容,希望文章能够帮你解决mv失败但cp在nfs mount上成功所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。