파일을 추출하는 동안 tgz
권한에 이상한 변화가 있는 것을 발견했습니다! tgz 파일은 root:root에 속하지만 폴더는 502:games에 속합니다.
[root@rocks7 common]# ls -l
-rw-r--r-- 1 root root 4779534 May 2 2012 scalapack-2.0.2.tgz
[root@rocks7 common]# tar xf scalapack-2.0.2.tgz
[root@rocks7 common]#
[root@rocks7 common]# ls -l
total 98576
drwxr-xr-x 10 502 games 4096 May 2 2012 scalapack-2.0.2
-rw-r--r-- 1 root root 4779534 May 2 2012 scalapack-2.0.2.tgz
여기서 문제가 무엇입니까?
답변1
타르볼에는 scalapack-2.0.2
사용자 ID 502와 게임 그룹(또는 게임 그룹 이름)에 해당하는 그룹 ID가 소유한 디렉토리가 포함되어 있습니다. 이것을 실행하면 볼 수 있습니다
tar tvf scalapack-2.0.2.tgz
Tar 아카이브는 루트로 추출한 이후 파일 내용 외에도 소유권과 권한을 저장하므로 이 메타데이터는 추출된 파일에 적용됩니다. tarball 자체의 소유권은 추출된 데이터의 소유권에 영향을 주지 않습니다.
CentOS를 실행하고 있으므로 GNU를 실행하고 있을 가능성이 높으며 저장소의 소유권과 권한을 적용하지 않고 및 옵션을 tar
사용하여 tarball을 추출할 수 있습니다 . 다른 구현에도 비슷한 옵션이 있을 수 있습니다(--no-same-owner
--no-same-permissions
tar
예를 들어 -o
존재하다FreeBSDtar
).