Berechtigungsänderungen nach dem Extrahieren der tgz-Datei

7

Beim Extrahieren einer tgzDatei ist mir aufgefallen, dass sich die Berechtigung in etwas Seltsames ändert! Die tgz-Datei gehört zu root: root, der Ordner gehört jedoch zu 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

Was ist das Problem hier?

Mahmood
quelle
1
Betrachten Sie Gnu Teers--no-same-owner
Jeff Schaller

Antworten:

16

Der Tarball enthält ein scalapack-2.0.2Verzeichnis, das der Benutzer-ID 502 gehört, und jede Gruppen-ID, die der Spielegruppe (oder möglicherweise der Spielegruppe nach Namen) entspricht. Sie können dies sehen, indem Sie ausführen

tar tvf scalapack-2.0.2.tgz

Tar-Archive speichern zusätzlich zu den Dateiinhalten Eigentümer und Berechtigungen. Da Sie als Root extrahieren, werden diese Metadaten auf die extrahierten Dateien angewendet. Das Eigentum am Tarball selbst hat keinen Einfluss auf das Eigentum an den extrahierten Daten.

Da Sie CentOS ausführen , wird vermutlich GNU ausgeführt tar, und Sie können die Optionen --no-same-ownerund verwenden --no-same-permissions, um Tarballs zu extrahieren, ohne die gespeicherten Eigentumsrechte und Berechtigungen anzuwenden. Andere tarImplementierungen haben möglicherweise ähnliche Optionen ( z . B.-o unter FreeBSDtar ).

Stephen Kitt
quelle
POSIX paxhat dafür die (standardisierte) Option -p p( pnur pErlaubnisse reservieren).
Jörg W Mittag