如何备份和恢复Linux上整个目录的权限

以下两个命令getfaclsetfacl是非常方便的工具,因为它们允许Linux管理员拍摄任何目录的任何目录设置的快照,如果需要,则需要递归重新应用这些权限。

让我们看看以下例子:

$tree -p
.
├── [dr---w----]  dir1
│   └── [drwxr-xr-x]  dir2
│       ├── [dr--r-xrw-]  dir3
│       └── [---x--x--x]  file1
├── [drwxr-xr-x]  dir4
│   └── [-rw-r--r--]  file3
└── [-rwxrwxrwx]  file2
4 directories, 3 files

使用“getfacl命令”以备份每个文件和目录的所有权限:

$getfacl -R . > permissions_backup

上面的命令将保存所有权限到permissions_backup文件中。

# cat permissions_backup 
# file: .
# owner: jack
# group: jack
user::rwx
group::r-x
other::r-x
# file: file2
# owner: jack
# group: jack
user::rwx
group::rwx
other::rwx
# file: dir4
# owner: jack
# group: jack
user::rwx
group::r-x
other::r-x
# file: dir4/file3
# owner: jack
# group: jack
user::rw
group::r-
other::r-
# file: dir1
# owner: jack
# group: jack
user::r-
group::-w
other::--
# file: dir1/dir2
# owner: jack
# group: jack
user::rwx
group::r-x
other::r-x
# file: dir1/dir2/dir3
# owner: jack
# group: jack
user::r-
group::r-x
other::rw
# file: dir1/dir2/file1
# owner: jack
# group: jack
user::--x
group::--x
other::--x

接下来,我们更改所有权限:

$chmod -R 777 .
$tree -p
.
├── [drwxrwxrwx]  dir1
│   └── [drwxrwxrwx]  dir2
│       ├── [drwxrwxrwx]  dir3
│       └── [-rwxrwxrwx]  file1
├── [drwxrwxrwx]  dir4
│   └── [-rwxrwxrwx]  file3
├── [-rwxrwxrwx]  file2

使用“SetFacl”命令恢复以前的权限设置:

$setfacl --restore=permissions_backup 
$tree -p
.
├── [dr---w----]  dir1
│   └── [drwxr-xr-x]  dir2
│       ├── [dr--r-xrw-]  dir3
│       └── [---x--x--x]  file1
├── [drwxr-xr-x]  dir4
│   └── [-rw-r--r--]  file3
├── [-rwxrwxrwx]  file2
日期:2020-07-07 20:57:14 来源:oir作者:oir