相当于 linux / unix 上的 subinacl.exe?

相当于 linux / unix 上的 subinacl.exe?

在 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-filesetfacl恢复并将其设置为。您还可以使用来备份整个目录树的 ACL。-getfacl -R

相关内容