“zfs将快照从Linux机器发送到Solaris”时ACL损坏

前端之家收集整理的这篇文章主要介绍了“zfs将快照从Linux机器发送到Solaris”时ACL损坏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在托管我们主目录的Ubuntu机器上运行ZFS.该池具有以下ACL设置:
  1. # zfs get all homes | grep acl
  2. homes aclinherit restricted default
  3. homes acltype off default

这里我有两个具有相同权限的常规文件

  1. # getfacl 1.txt 2.txt
  2. # file: 1.txt
  3. # owner: usr
  4. # group: grp
  5. user::rw-
  6. group::r--
  7. other::r--
  8.  
  9. # file: 2.txt
  10. # owner: usr
  11. # group: grp
  12. user::rw-
  13. group::r--
  14. other::r--

每天晚上我都会向Solaris 8上运行ZFS的计算机发送增量快照

  1. zfs send -i homes@$PREV_BACKUP homes@$CURRENT_BACKUP | \
  2. ssh solarishost zfs receive -vFd homes_backup

Solaris主机上的文件系统具有以下ACL设置:

  1. # zfs get all homes_backup | grep acl
  2. homes_backup aclmode passthrough local
  3. homes_backup aclinherit restricted default

当我在Solaris主机上检查快照中的文件时,我看到最近的一个(1.txt)没有设置任何ACL:

  1. # /usr/bin/ls -v 1.txt 2.txt
  2. -rw-r--r-- 1 2428 2000 2170 Oct 12 13:42 1.txt
  3. -rw-r--r-- 1 2428 2000 2146 May 31 2013 2.txt
  4. 0:owner@:execute:deny
  5. 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
  6. /write_acl/write_owner:allow
  7. 2:group@:write_data/append_data/execute:deny
  8. 3:group@:read_data:allow
  9. 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
  10. /write_acl/write_owner:deny
  11. 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
  12. :allow

现在,当我在Ubuntu客户端上安装solarishost-snapshot时,我可以看到这些文件并且它们似乎具有相同的权限,但我无法读取1.txt:

  1. # cat 2.txt >/dev/null; echo $?
  2. 0
  3. # cat 1.txt >/dev/null; echo $?
  4. cat: 1.txt: Permission denied
  5. 1

再次,看起来与Ubuntu客户端相同:

  1. # getfacl 1.txt 2.txt
  2. # file: 1.txt
  3. # owner: usr
  4. # group: grp
  5. user::rw-
  6. group::r--
  7. mask::rwx
  8. other::r--
  9.  
  10. # file: 2.txt
  11. # owner: usr
  12. # group: grp
  13. user::rw-
  14. group::r--
  15. mask::rwx
  16. other::r--
  17.  
  18. # ls -l 1.txt 2.txt
  19. -rw-r--r--+ 1 usr grp 2.2K Oct 12 13:42 1.txt
  20. -rw-r--r--+ 1 usr grp 2.1K May 31 2013 2.txt

我现在的问题是:如何设置从Ubuntu到Solaris的快照创建,以便Solaris主机上的ACL允许用户安装快照并读取自己的文件?看起来所有最近备份的文件都会受到影响.

解决方法

Solaris 11 ZFS使用NFSv4 ACL而不是POSIX ACL. Linux根本没有在ZFS上使用NFSv4 ACL,而且似乎永远不会.虽然NFSv4 ACL是POSIX ACL的超集,但似乎只有Solaris可以在文件移动/复制期间将POSIX ACL传输/转换为NFSv4 ACL.

总而言之,我没有看到在ZFS快照中保留ACL的方法.使用Linux – > Linux方案,或使用Solaris – > Solaris,Solaris – > FreeBSD或FreeBSD – > FreeBSD方案(两者都有NFSv4 ACL).

猜你在找的Linux相关文章