Extrahieren Sie Dateien und Ordner mit angegebenen Berechtigungen

Extrahieren Sie Dateien und Ordner mit angegebenen Berechtigungen

Ich packe einen Ordner mit vielen Unterordnern und Dateien in Windows mit 7zip, lade ihn auf VPS hoch und führe dann den Befehl aus:

tar -xvzf file.tar.gz

dann haben alle entpackten Dateien und Ordner die Berechtigung 777. Wie erreiche ich, dass Ordner die Berechtigung 755 und Dateien die Berechtigung 644 haben?

Antwort1

Wenn Sie als normaler Benutzer arbeiten tar(1), wird umaskstandardmäßig Ihr angewendet. Wenn Sie tar(1)als arbeiten root, können Sie --no-same-permissionseine Befehlszeilenoption angeben, um tar(1)die Berücksichtigung von anzufordern umask.

Also: Führen Sie dies entweder als normaler Benutzer aus:

umask 022
tar zxvf file.tar.gz

oder führen Sie dies wie folgt aus root:

umask 022
tar zxvf file.tar.gz --no-same-permissions

Möglicherweise möchten Sie es umask 022in Ihre ~/.bashrc, ~/.bash_profile, oder einfügen ~/.profile. ( bash(1)Ausführliche Informationen zu den Startdateien finden Sie auf der Manpage. Es ist kompliziert.)

Einzelheiten dazu umaskfinden Sie in der Manpage Ihrer Shell, der umask(2)Manpage für Systemaufrufe oder der umask(1posix)Manpage des von POSIX bereitgestellten Dienstprogramms (sofern Sie dieses manpages-posixinstalliert haben).

Antwort2

Führen Sie die folgenden Befehle im Stammverzeichnis des Verzeichnisses aus, um die gewünschten Berechtigungen für Ihre Verzeichnisse und Dateien festzulegen:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Beachten Sie den Abstand zwischen der schließenden geschweiften Klammer und dem Backslash

Antwort3

Wenn Sie ein großes X verwenden, chmodkönnen Sie damit die Ausführungsberechtigungen nur für Verzeichnisse festlegen.

chmod -R ugo+X .

Antwort4

finden . -type f -exec chmod 644 {} \;

verwandte Informationen