Frage Wie lege ich chmod für einen Ordner und alle seine Unterordner und Dateien fest? [geschlossen]


Gibt es eine Möglichkeit zu setzen? chmod 755 zum /opt/lampp/htdocs und alle Inhalte inklusive Unterordner und Dateien?

Auch in Zukunft, wenn ich einen neuen Ordner oder eine Datei darin erstelle htdocs, wie können die Berechtigungen dafür automatisch gesetzt werden 755?

Das funktioniert, aber nur für diesen Ordner:

chmod 775 /opt/lampp/htdocs

1295
2017-09-18 02:31


Ursprung


Antworten:


Die anderen Antworten sind korrekt, da chmod -R 755 dies als Berechtigungen für alle Dateien und Ordner in der Baumstruktur festlegen wird. Aber warum in aller Welt willst du das?? Es könnte für die Verzeichnisse sinnvoll sein, aber warum sollte das Ausführungsbit auf allen Dateien gesetzt werden?

Ich vermute, was Sie wirklich tun wollen, ist die Verzeichnisse auf 755 und lassen Sie die Dateien entweder allein oder legen Sie sie auf 644. Dazu können Sie die verwenden find Befehl. Beispielsweise:

Um alle Verzeichnisse in 755 zu ändern (drwxr-xr-x):

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

Um alle Dateien in 644 zu ändern (-rw-r--r--):

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

2257
2017-07-16 20:42



Überprüfen Sie die Option -R

chmod -R <permissionsettings> <dirname>

In Zukunft können Sie viel Zeit sparen, indem Sie zuerst die man-Seite überprüfen:

man <command name>

Also in diesem Fall:

man chmod

636
2017-09-18 02:36



Wenn Sie Berechtigungen für alle Dateien festlegen möchten a+rund alle Verzeichnisse nach a+xund rekursiv durch den vollständigen Unterverzeichnisbaum:

chmod -R a+rX *

Das X (Das ist Kapital X, nicht klein x!) wird für Dateien ignoriert (außer sie sind bereits für jemanden ausführbar), wird aber für Verzeichnisse verwendet.


287
2018-01-31 20:39



Sie können verwenden -R mit chmod zum rekursiven Traversieren aller Dateien und Unterordner.

Sie benötigen möglicherweise Sudo, da es darauf ankommt LAMPE Wird vom aktuellen Benutzer oder einem anderen Benutzer installiert:

sudo chmod 755 -R /opt/lampp/htdocs

103
2018-04-19 15:43



Um auf alle Unterordner (rekursiv) zu setzen, verwenden Sie -R

chmod 755 /folder -R

Und verwenden Sie umask, um den Standard auf neue Ordner / Dateien zu setzen     CD / Ordner     umask 755


65
2017-09-18 02:35



chmod 755 -R /opt/lampp/htdocs wird rekursiv die Berechtigungen festlegen. Es gibt keine Möglichkeit, die Berechtigungen für Dateien automatisch nur in diesem Verzeichnis festzulegen, die nach dem Festlegen der Berechtigungen erstellt werden. Sie können jedoch Ihre systemweiten Standarddateiberechtigungen ändern, indem Sie festlegen umask 022.


46
2017-09-18 02:38



Der korrekte rekursive Befehl ist:

sudo chmod 755 -R /opt/lampp/htdocs

-R: Ändern Sie jeden Unterordner einschließlich des aktuellen Ordners


41
2017-09-18 02:40



Vielleicht möchten Sie darüber nachdenken Diese Antwort von Nik gegeben auf Superuser und verwenden Sie "one chmod" für alle Dateien / Ordner wie folgt:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)

22
2018-02-27 06:42



Benutzen:

sudo chmod 755 -R /whatever/your/directory/is

Sei jedoch vorsichtig damit. Es kann Ihnen wirklich weh tun, wenn Sie die Berechtigungen der falschen Dateien / Ordner ändern.


19
2017-09-18 02:37



Hier ist eine andere Möglichkeit, um Verzeichnisse auf 775 und Dateien auf 664 zu setzen.

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

Es mag lange aussehen, aber aus drei Gründen ist es ziemlich cool:

  1. Scannt nur einmal statt nur zweimal durch das Dateisystem.
  2. Bietet bessere Kontrolle darüber, wie Dateien werden wie behandelt Verzeichnisse werden behandelt. Dies ist nützlich beim Arbeiten mit spezielle Modi so wie die klebriges Bit, die Sie wahrscheinlich auf Verzeichnisse, aber nicht auf Dateien anwenden möchten.
  3. Verwendet eine Technik direkt aus der man Seiten (siehe unten).

Beachten Sie, dass ich den Leistungsunterschied (falls vorhanden) zwischen dieser Lösung und der Verwendung von zwei Suchbefehlen (wie in Peter Mortensens Lösung) nicht bestätigt habe. Ein ähnliches Beispiel im Handbuch zu sehen, ist jedoch ermutigend.

Beispiel aus man find Seite:

find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)

Traverse the filesystem just once, listing setuid files and  direc‐
tories into /root/suid.txt and large files into /root/big.txt.

Prost


18
2017-11-17 05:47



chmod -R 755 directory_name funktioniert, aber wie würden Sie neue Dateien auch auf 755 speichern? Die Berechtigungen der Datei werden zur Standardberechtigung.


11
2018-04-30 00:22