web-dev-qa-db-ja.com

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

ここの問題は何ですか?

7
mahmood

Tarballには、ユーザーID 502が所有するscalapack-2.0.2ディレクトリと、ゲームグループ(またはおそらくゲームグループの名前)に対応するグループIDが含まれています。実行するとこれを確認できます

tar tvf scalapack-2.0.2.tgz

Tarアーカイブには、ファイルの内容に加えて、所有権と権限が格納されます。ルートとして抽出しているため、そのメタデータは抽出されたファイルに適用されます。 tarball自体の所有権は、抽出されたデータの所有権に影響を与えません。

CentOSを実行しているため、おそらくGNU tarを実行しているため、--no-same-ownerおよび--no-same-permissionsオプションを使用して、保存された所有権と権限を適用します。他のtar実装には同様のオプションがあります(eg-o on FreeBSD tar )。

16
Stephen Kitt