我如何获得在Linux上的NFS导出文件夹到OS X的OS X的用户ID,所以我可以cp -a从Linux到OS X?

我在一台计算机上安装了Ubuntu GNOME 15.10,在另一台计算机上安装了OS X 10.11.2。 我想从Ubuntu安装文件迁移到OS X安装,但保留权限。

目前我正在尝试的策略是通过NFS导出我的主目录,从Mac上挂载它,然后cp -a将这些文件从挂载中删除。 我知道在OS X上,UID和GID的分配方式不同于Linux。 在Linux上,我的UID / GID是1000/1000,在OS X上,我的UID / GID是501/20。

从我可以收集的信息来看,在/etc/exports有足够的数据来让我的Linux文件在Mac上显示为501/20:

 /home/pietro/ <Mac's IP>(rw,sync,all_squash,no_subtree_check,insecure,anonuid=501,anongid=20) 

并在Mac上安装

 mkdir /tmp/q sudo mount -t nfs <Linux's IP>:/home/pietro /tmp/q 

但是,当我这样安装时,Mac上的ls -l告诉我文件权限仍然是1000/1000。

我也试过了:

  • no_root_squash
  • anonuid=1000,anongid=1000
  • 删除no_subtree_check
  • 删除sync
  • echo N | sudo tee /sys/module/nfs/parameters/nfs4_disable_idmapping echo N | sudo tee /sys/module/nfs/parameters/nfs4_disable_idmapping其次是sudo nfsidmap -c
  • NEED_IDMAPD=yes/etc/default/nfs-common
  • -o resvport在Mac上-o resvport

一切都无济于事。

所以我的问题是:如何configurationNFS,以便当我在ls -l的Mac端获得501/20作为所有者/组,所以我可以安全地使用cp -a

或者,我是否使用了错误的工具来完成这项工作,还有更好的方法吗? 我需要保留其他Unix权限,所以SMB似乎不是一个选项。 我也不愿冒险改变OS X帐户的UID / GID。

谢谢。

我决定只使用rsync, 从版本3.1.0有做我想要的选项 。 我需要获得最新的rsync,因为苹果公司仍然用OS X发布一个古老的版本,但之后,这只是一个问题

 rsync3 --usermap 1000:501 --groupmap 1000:20 -a -v pietro@<Linux's IP>:/home/pietro/<path> <dest> 

不pipe怎么说,还是要谢谢你!

更新 (为Google员工的利益)反之亦然,也从Mac的工作!

 rsync3 --usermap 501:1000 --groupmap 20:1000 -a -v <src> pietro@<Linux's IP>:/home/pietro/<path> 

<path>似乎不喜欢空格,但我可能会做错误的…