ACL을 유지하면서 파일을 백업하는 데 사용하는 것은 무엇입니까? 일반적으로 사용되고 해킹되지 않은

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

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



답변

타르 사용

만들다:

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

untar하려면 :

tar --acls -xpf backup.tar

답변

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

내가 알기로는 수정되지 않은 GNU tar는 ACL 정보를 무시합니다. (RHEL 5.2와 함께 제공되는 GNU tar 1.15.1의 매뉴얼 페이지에는 스위치 –acls 및 –no-acls가 언급되어 있지만 작동하지는 않았습니다.)

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

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

스타 홈페이지 : http://cdrecord.berlios.de/new/private/star.html
스타는 최소한 우분투에서 사용할 수 있습니다.


답변

나는 지금까지 해결책을 찾고 있는데 이것을 발견했다.

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

getfacl -R /a_folder > folder.acl

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

tar -czvf folder.tar.gz /a_folder

내가 추출 할 때

tar -xvf folder.tar.gz

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

setfacl --restore=folder.acl

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


답변

rsync with the -A and/or -X options.

답변

사용하기 쉽지만 강력한 솔루션을 찾고 있다면 권장 rdiff-backup합니다.

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

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


답변

나는 당신이 사용하는 것이 좋습니다 bsdtar.

bsdtar 기본적으로 확장 ACL을 백업 하는 경우 와 동일한 구문 을 사용하며 GNU tar생성 된 아카이브는 읽을 수 GNU tar있습니다.

패키지와 명령 이름 (데비안 기반 배포판 아래)은 bsdtar입니다.

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

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


답변

타르 맨 페이지에서.

-p, –same-permissions, –preserve-permissions
             는 파일을 추출 할 때 umask를 무시합니다 (루트의 기본값).

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

파일의 이전 권한을 유지하려면 옵션을 간단하게 적용하십시오. 예를 들어

스트레이트 타르 :

tar xvp some-file

bz.tar :

tar xvjp some-file

gz.tar :

tar xvzp some-file