tgzファイルの解凍後の権限の変更

tgzファイルの解凍後の権限の変更

ファイルの抽出中に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を実行している可能性が高く、リポジトリの所有権と権限を適用せず、オプションを使用してtartarballを抽出できます。他の実装にも同様のオプションがあります(--no-same-owner--no-same-permissionstar例えば -o存在するFreeBSDtar)。

関連情報