使用 rsync 保留 ACL

使用 rsync 保留 ACL

抱歉,但我在网上和论坛上搜索后都找不到这个看似简单的问题的解决方案。

我有一个简单的需求:将一个目录及其内容复制到另一个目录当地的位置,保留 ACL 和 xAttr。根据手册页,使用 -A 和 -X 选项应该非常简单:

rsync -aAX /source/directory /destination/directory

但这无法保留它们。不过,简单使用“cp”就可以了。

cp -a /source/directory /destination/directory

我尝试过各种其他组合,甚至使用 sudo 也没有成功......

sudo rsync -rA /source/directory /destination/directory

我正在使用 Ubuntu 14.04LTS;我确定我有 ACL,因为我已经使用“setfacl”和“getfacl”设置了 ACL

setfacl -R -m "g:gp2:rw" MyDirectoryOfInterest

getfacl 显示正在使用 ACL:

>>getfacl /source/DirectoryOfInterest
getfacl: Removing leading '/' from absolute path names

# file: source/DirectoryOfInterest
# owner: myusername
# group: myusername
user::rwx
user:usr1:rwx
user:usr2:rw-
user:usr3:r--
group::rwx
group:gp1:r--
group:gp2:rw-
group:gp3:rwx
mask::rwx
other::rwx

注意:源目录和目标目录都在同一驱动器上,甚至在同一目录中,目标目录只需附加数字“2”。例如 /home/username/Car 和 /home/username/Car2。

注意:rsync 将运行,但不会分配任何 ACL 和 xAttr

>>getfacl /home/myusername/test123/Cars2
getfacl: Removing leading '/' from absolute path names
# file: home/myusername/test123/Cars2
# owner: myusername
# group: myusername
user::rwx
group::rwx
other::r-x

我需要使用 rsync,因为最终我希望将它用于需要使用 rsync 的 NAS。如能得到任何帮助我将不胜感激。

答案1

我将部分回答我自己的问题。

我在一台较旧的 PC 上安装了 Lubuntu 供孩子们使用。我决定看看 Lubuntu 的 rsync 版本是否能正常运行。Lubuntu 16.04.1LTS 上的 rsync 版本是 3.1.1 协议版本 31。

rsync -aAX /source/filename /destination/
rsync -aAX /source/filename /destination/filename
rsync -aAX /source/filename /destination/newfilename

在 Lubuntu 上一切运行良好。

要么是 Ubuntu 14.04LTS(如果我没记错的话是 3.0.1)上的 rsync 版本有错误,要么是我在某个地方弄乱了配置文件或类似文件。

由于我将安装 Ubuntu 16.04.1LTS 来代替 Ubuntu 14.04LTS,因此我不会再花时间尝试解决这个问题。

问候。

相关内容