사용자 ID가 변경되면 tar가 권한을 유지합니까?

사용자 ID가 변경되면 tar가 권한을 유지합니까?

tar 명령에서 "p" 옵션을 사용하여 일부 데이터를 백업해야 합니다. 문제는 이 데이터를 복원할 위치에 모두 동일한 사용자가 있지만 해당 사용자는 다른 ID를 가질 수 있다는 것입니다. tar와 어떤 차이가 있습니까? 아니면 사용자 이름으로 권한을 올바르게 복원합니까?

답변1

tar연관된 문자열이 아닌 UID 및 GID를 기반으로 권한을 기록합니다. 따라서 한 서버의 UID가 3300이고 'bob'에 연결된 경우 새 서버에서 파일은 UID 3300을 가진 사용자가 소유하게 됩니다.

UNIX의 가상 모든 것(모든 것을 말하고 싶지만 100% 확신할 수는 없음)은 실제로 파일 시스템 수준에 저장되는 UID:GID 값을 사용합니다. 이름은 단지 passwd 파일에서 간단한 조회일 뿐이며 기본 검사는 숫자 값을 사용하여 수행됩니다.

답변2

이전 답변을 요약하고 몇 가지 중요한 정보를 추가합니다.

  • 아카이브를 생성할 때 tar항상 파일의 사용자 및 그룹 ID를 보존합니다.~하지 않는 한--owner=NAME, 와 다르게 말했습니다 --group=NAME. 두 경우 모두 각 파일에는 항상 연관된숫자사용자 및 그룹 ID.

  • GNU tar및 아마도 다른 버전의 tar,또한사용자 및 그룹 저장이름, --numeric-owner가 사용되지 않는 한. 또한 기본적으로 사용자 및 그룹 이름을 저장하지만 다음과 같은 옵션 bsdtar은 지원되지 않습니다.--numeric-owner창조버전 3.0까지 보관합니다.적출훨씬 오래 전부터 아카이브).

  • 로 추출할 때일반 사용자, 모든 파일은언제나사용자의 소유가 됩니다. 그리고 파일을 추출한다는 것은 파일 시스템에 새 파일을 생성하는 것을 의미하며 일반 사용자가 파일을 생성하고 다른 사람에게 소유권을 줄 수 없기 때문에 다를 수 없습니다.

  • 다음과 같이 추출할 때뿌리, tar기본적으로 추출된 파일의 소유권을 복원합니다.~하지 않는 한 --no-same-owner루트 자신에게 소유권을 부여하는 데 사용됩니다.

  • GNU tar, bsdtar 및 다른 버전의 에서는 tar복원된 소유권이 사용자(및 그룹)에 의해 수행됩니다.이름, 해당 정보가 아카이브에 있는 경우그리고대상 시스템에 일치하는 사용자가 있습니다. 그렇지 않으면 ID별로 복원됩니다. 옵션이 제공 되면 --numeric-owner사용자 및 그룹 이름은 무시되고 ID가 사용됩니다. 두 경우 모두 숫자 ID가 사용될 때마다 일치하는 사용자 및 그룹이~ 아니다시스템에 존재해야 합니다.

  • 권한 및 타임스탬프도 아카이브에 저장되며 옵션 --no-same-permissions및/또는 --touch사용되지 않는 한 기본적으로 복원됩니다. 사용자가 추출할 때 사용자 umask빼다--same-permissions사용 되지 않는 한 권한에서 .

  • --preserve-permissions별칭 이며 --same-permissions다음과 동일한 기능을 갖습니다.-p

이것이 문제를 명확하게 하는 데 도움이 되기를 바랍니다! :)

답변3

두 시스템 간에 파일을 전송하려는 경우 rsync는 기본적으로 uid 대신 사용자 이름으로 권한을 설정하고 양쪽 끝의 사용자 이름을 확인합니다. 사용자가 시스템 중 하나에 존재하지 않는 경우에만 별도로 지정하지 않는 한 uid와 함께 사용자를 복사합니다.

답변4

GNU tar에 --same-owner 옵션을 사용하십시오. 보다http://www.gnu.org/software/tar/manual/html_section/Attributes.html

관련 정보