
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 umask
standardmäßig Ihr angewendet. Wenn Sie tar(1)
als arbeiten root
, können Sie --no-same-permissions
eine 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 022
in 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 umask
finden 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-posix
installiert 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, chmod
können Sie damit die Ausführungsberechtigungen nur für Verzeichnisse festlegen.
chmod -R ugo+X .
Antwort4
finden . -type f -exec chmod 644 {} \;