답변:
타르 사용
만들다:
tar --acls -cpf backup.tar some-dir-or-file
untar하려면 :
tar --acls -xpf backup.tar
tar: unrecognized option '--acls'
작동하지 않습니다.
--acls
실제로, 나는 (표준) 파일 권한 비트가 아니라 확장 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 스타는 최소한 우분투에서 사용할 수 있습니다.
star
데비안에서는 사용할 수 없으며 "팀"에 의해 관리되지 않는 것 같습니다. 이 프로젝트는 여전히 30 년 이상 지속되어 운영되고 있습니다. bsdtar
다른 것을 원하면 시도하십시오 .
나는 지금까지 해결책을 찾고 있는데 이것을 발견했다.
먼저 내 폴더에서 getfactl을 수행하십시오.
getfacl -R /a_folder > folder.acl
그런 다음 일반 타르를 수행하십시오
tar -czvf folder.tar.gz /a_folder
내가 추출 할 때
tar -xvf folder.tar.gz
권한에 대해 setfacl을 수행하십시오.
setfacl --restore=folder.acl
이것은 나를 위해 작동합니다.
나는 당신이 사용하는 것이 좋습니다 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