Ich packe einen Ordner mit vielen Unterordnern und Dateien in Windows mit 7zip, lade ihn auf VPS hoch und führe dann den folgenden Befehl aus:
tar -xvzf file.tar.gz
Dann haben alle entpackten Dateien und Ordner die Berechtigung 777. Wie erhalte ich sie, damit Ordner die Berechtigung 755 und die Dateien 644 haben?
linux
file-permissions
tar
Kaspar L. Palgi
quelle
quelle
Antworten:
Wenn Sie
tar(1)
als normaler Benutzer ausgeführt werden, wirdumask
standardmäßig Ihr Benutzer angewendet. Wenn Sietar(1)
alsroot
ausführen, können Sie eine--no-same-permissions
Befehlszeilenoption angeben, in der Sietar(1)
aufgefordert werden, dieumask
.Also: Führen Sie dies entweder als normaler Benutzer aus:
oder führen Sie dies aus als
root
:Vielleicht haben Sie haften möchten
umask 022
in Ihr~/.bashrc
,~/.bash_profile
oder~/.profile
. (bash(1)
Ausführliche Informationen zu den Startdateien finden Sie in der Manpage. Es ist kompliziert.)Details zu
umask
finden Sie in der Manpage Ihrer Shell, in der Manpage fürumask(2)
Systemaufrufe oder in der vonumask(1posix)
POSIX bereitgestellten Manpage für Dienstprogramme (sofern Sie diesemanpages-posix
installiert haben).quelle
Führen Sie die folgenden Befehle im Stammverzeichnis des Verzeichnisses aus, um die gewünschten Berechtigungen für Ihre Verzeichnisse und Dateien festzulegen:
Beachten Sie den Abstand zwischen der schließenden geschweiften Klammer und dem hinteren Schrägstrich
quelle
\;
Wenn Sie in Großbuchstaben X verwenden
chmod
, können Sie damit die Ausführungsberechtigungen nur für Verzeichnisse festlegen. dhquelle
Ich habe diese Lösung gefunden, die für mich funktioniert hat. Für Ordner und Unterordner:
Und für alle Dateien (auch in Ordnern und Unterordnern):
Alle Kommentare sind willkommen, wenn dies kein guter Weg ist. Ich habe gerade angefangen, Linux zu lernen.
Nach den Kommentaren wäre eine robustere Lösung, die Sonderzeichen gut handhabt:
quelle
the': No such file or directory chmod: cannot access
Logo.txt zugreifen ': Keine solche Datei oder Verzeichnis chmod: kann nicht auf `./blog/wp-content/themes/OneRoom/LOGO' zugreifen: Keine solche Datei oder di Pfarrhaus777
ist gefährlich und gilt nur für eine sehr kleine Minderheit von Systemen.find . -type f -print0 | xargs -0 chmod 644
. Das-name "*"
ist nicht erforderlich undxargs(1)
analysiert Dateinamen in Leerzeichen oder Zeilenumbrüchen, es sei denn, Sie verwenden die Option-0
- die Dateinamen in ASCII-NUL
Zeichen analysiert , die nicht in Dateinamen enthalten sein können. Das-print0
forfind(1)
fordert es auf, seine Ausgabe in einem für diexargs -0
Eingabe geeigneten Modus zu formatieren .finden . -Typ f -exec chmod 644 {} \;
quelle