it-swarm-ko.tech

파일을 백업하고 ACL을 보존하기 위해 무엇을 사용해야합니까?

Tar 유틸리티를 사용하여 파일을 백업에 저장하면 확장 ACL이 손실됩니다.

ACL을 보존하기 위해 일반적으로 사용되지만 해킹되지 않은 솔루션 (예 : ACL을 처음부터 다시 작성하는 스크립트 만들기)이 있습니까?

24
silk

Tar 사용

만들다:

tar --acls -cpf backup.tar some-dir-or-file

압축을 풀려면 :

tar --acls -xpf backup.tar
4
Scott Grayban

실제로 질문은 (표준) 파일 권한 비트에 관한 것이 아니라 확장 ACL 정보 (setfacl (1) 또는 acl (5) 참조)에 관한 것이라고 생각합니다.

내가 아는 한, 수정되지 않은 GNU tar는 ACL 정보를 무시합니다. (RHEL 5.2와 함께 제공되는 GNU tar 1.15.1의 man 페이지에는 스위치 --acls) 및 --no-acls,하지만 아직 작동하지 않았습니다.)

그러나 exustar 형식을 선택하면 star 프로그램이 ACL을 백업 및 복원 할 수 있습니다.

star -c -p -acl artype=exustar -f archive.tar  files...
star -x -acl -f archive.tar

Star 홈페이지 : http://cdrecord.berlios.de/new/private/star.html Star는 적어도 우분투에서 사용할 수 있습니다.

14
bhm

지금까지 해결책을 찾고 있습니다.

먼저 내 폴더에서 getfactl을 수행하십시오.

getfacl -R /a_folder > folder.acl

그런 다음 일반 타르를 수행하십시오.

tar -czvf folder.tar.gz /a_folder

내가 그것을 추출 할 때

tar -xvf folder.tar.gz

권한에 대해 setfacl을 수행하십시오.

setfacl --restore=folder.acl

이것은 나를 위해 작동합니다.

9
maniat1k
rsync with the -A and/or -X options.
5
Skaperen

사용이 간편하면서도 강력한 솔루션을 찾고 있다면 rdiff-backup.

기본적으로 소스 디렉토리를 대상 디렉토리에 복사하지만 추가 정보도 저장하므로 원할 때마다 시간을 되돌릴 수 있습니다.

물론 심볼릭 링크, 특수 파일, 하드 링크, 권한, uid/gid 소유권 및 수정 시간을 보존합니다.

2
Pablo Antonio

bsdtar를 사용하는 것이 좋습니다.

bsdtar기본적으로 확장 ACL 백업, 동일한 구문GNU tar로 사용하고 생성 된 아카이브는 GNU tar.

패키지 및 명령 이름 (Debian 기반 배포판 아래)은 bsdtar입니다.

bsdtar cf archive.tar /my/folder/using/extd_acl 
bsdtar xf archive.tar 

두 번째 (추출) 명령은 ACL을 복원합니다.

2
Totor

Tar Man 페이지에서.

-p, --same-permissions, --preserve-permissions
파일을 추출 할 때 umask 무시 (root의 기본값)

액세스 권한 (ACL)을 변경하는 것은 실제로 아카이브 작업이 아니라 압축을 푸는 작업입니다. Tar는 한 사용자에서 다른 사용자로 파일을 배포하는 데 매우 자주 사용되므로 압축을 풀 때 mask 사용자를 적용하는 것이 편리하다고 생각됩니다.

파일의 이전 권한을 유지하려면 옵션에 광고를 추가하기 만하면됩니다. 예를 들면

스트레이트 타르 :

tar xvp some-file

bz.tar :

tar xvjp some-file

gz.tar :

tar xvzp some-file
1
Eli Frey