在 Windows 上修改权限时,我首先使用以下命令将 ACL 备份到文件中:
subinacl /noverbose /output=C:\temp\foldername_redir_permissions_backup_star_star.txt /subdirectories "W:\foldername\*.*"
和...
subinacl /noverbose /output=C:\temp\foldername_redir_permissions_backup.txt /subdirectories "W:\foldername\"
...支持他们。
然后,如果需要恢复它们,像这样的命令...
subinacl /playfile C:\temp\foldername_redir_permissions_backup_star_star.txt
...可以用来恢复它们。
那么 Linux / Unix 上的 POSIX 权限也可以做同样的事情吗?那么 ACL 扩展权限呢?
答案1
setfacl
被设计为接受getfacl
输出作为输入。这意味着您可以运行getfacl
,将输出保存到文件中,做您的事情,然后恢复 ACL。确切的过程可能因您的平台而异。但在 Linux 上:
# Take a peek at the current ACL
[root@vlp-fuger ~]# getfacl newFile
# file: newFile
# owner: root
# group: root
user::rw-
group::r--
group:provisor:rwx
mask::rwx
other::r--
# Backup ACL
[root@vlp-fuger ~]# getfacl newFile > newFile.acl
# Remove the group permission, add another that we'll later want to get rid of
[root@vlp-fuger ~]# setfacl -x g:provisor newFile
[root@vlp-fuger ~]# setfacl -m g:ihtxadm:r-x newFile
[root@vlp-fuger ~]# getfacl newFile
# file: newFile
# owner: root
# group: root
user::rw-
group::r--
group:ihtxadm:r-x
mask::r-x
other::r--
# Restore ACL to where it was
[root@vlp-fuger ~]# setfacl --restore=newFile.acl
# Resulting ACL
[root@vlp-fuger ~]# getfacl newFile
# file: newFile
# owner: root
# group: root
user::rw-
group::r--
group:provisor:rwx
mask::rwx
other::r--
如果您想通过管道传输旧的 ACL,您还可以使用--set-file
来setfacl
恢复并将其设置为。您还可以使用来备份整个目录树的 ACL。-
getfacl -R