GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Centos – Alle Ordnerberechtigungen mit einem Befehl ändern?

Wie kann ich in meinem Webanwendungsverzeichnis alle meine Ordnerberechtigungen auf rwxr-xr-x ändern (755)? Und wie kann ich alle Dateiberechtigungen auf rw-r--r-- ändern (644)? Ich möchte alle Ordner und Dateien einschließlich Sub-Sub-Dateien und -Ordner ändern.

Ich weiß, dass der folgende Befehl alle Dateien und Ordner ändern würde, aber ich möchte zwischen einer Datei und einem Ordner unterscheiden.

chmod -R 755 ./my_web_app_project

Akzeptierte Antwort:

Eine Möglichkeit, mit einem find genau das zu tun, was Sie wollen Befehl ist

find my_web_app_project '(' -type f -exec chmod 644 {} ';' ')' -o '(' -type d -exec chmod 755 {} ';' ')'

-o bedeutet ODER.
Dieser Befehl bearbeitet alle Objekte im Projektbaum
die vom Typ „Datei“ oder sind Geben Sie „Verzeichnis“ ein,
und führt verschiedene Befehle aus, je nachdem, um welchen Typ es sich bei den einzelnen Objekten handelt.

Sie können dies etwas effizienter machen,
indem Sie die Semikolons ersetzen (';' ) mit Pluszeichen (+ );
das teilt find mit um chmod 644 auszuführen einmal, mit allen einfachen Dateinamen als Argumente,
und zum Ausführen von chmod 755 einmal, mit allen Verzeichnisnamen als Argumente.

Übrigens müssen Sie nicht ./ sagen für alles andere als das Ausführen eines Programms im aktuellen Verzeichnis
(obwohl es gelegentlich nützlich ist
zum Manipulieren von Dateien, deren Namen mit einigen Sonderzeichen beginnen).

Ich frage mich, wie Ihre Berechtigungen jetzt aussehen
(bevor Sie einen rekursiven baumweiten chmod ausführen ).
Bei Dateien werden die Ausführungsberechtigungsbits im Allgemeinen nicht aktiviert,
es sei denn, es handelt sich tatsächlich um ausführbare Programme,
oder Sie haben versehentlich so etwas wie chmod -R 755 ausgeführt .
Bei Verzeichnissen werden die Ausführungsberechtigungsbits im Allgemeinen nicht deaktiviert
, es sei denn, Sie haben etwas Katastrophales wie chmod -R 644 getan .
Wenn Sie Berechtigungen durcheinander gebracht haben,
weil Sie einen schlecht beratenen chmod -R ausgeführt haben mit einem numerischen Modus,
ignorieren Sie diesen Abschnitt
und bleiben Sie bei dem Befehl am Anfang dieser Antwort.

Aber wenn Ihre Berechtigungen im Allgemeinen vernünftig sind,
und Sie nur einen Standard von
Lese-/Schreibberechtigungen für den Benutzer
und Nur-Lese-Berechtigungen für alle anderen (group und world ),
können Sie tun

chmod -R +rX,u+w,go-w my_web_app_project

in denen

  • +rX bedeutet +r,+X (Beachten Sie, dass das X wird großgeschrieben — das ist wichtig).
    • +r bedeutet Leserechte für Benutzer, Gruppe und andere setzen.
    • +X bedeutet Ausführungsberechtigung für Benutzer, Gruppen und andere festlegen wenn sie derzeit für einen von ihnen festgelegt ist oder wenn das Objekt ein Verzeichnis ist .
  • u+w bedeutet Schreibrechte für Benutzer setzen.
  • go-w bedeutet Schreibrechte für Gruppe und andere deaktivieren.
Verwandte:Kann ich den Ordner C:ProgramDataPackage Cache löschen?

Zusammenfassung einiger wichtiger Punkte:

  • Natürlich können Sie chmod nur Dinge, die Sie besitzen
    (es sei denn, Sie sind privilegiert) und die nicht schreibgeschützt sind.
    Wenn es Dinge in Ihrem Verzeichnis gibt, die Sie nicht chmod können ,
    jeder dieser Befehle verursacht einen Fehler.
  • Der find Befehle werden nichts mit Dingen machen,
    die keine Verzeichnisse oder Dateien sind (z. B. Named Pipes).
  • Der find Befehl mit -exec chmod 755 {} + kann fehlschlagen
    wenn Sie noch keine Lese- und Ausführungsberechtigung für alle Ordner
    unter Ihrem Verzeichnis der obersten Ebene haben.
  • Der chmod -R +rX,u+w,go-w Befehl wird
    • Alle Verzeichnisse auf Modus 755 setzen,
    • symbolische Links ignorieren,
    • für alle anderen Dateitypen (einschließlich z. B. Named Pipes):
      • setzen Sie ihn auf 755, wenn er bereits mindestens einen x hat Bit; andernfalls
      • stellen Sie ihn auf 644.

Cent OS
  1. CentOS 8-Paketverwaltung mit DNF in der Befehlszeile

  2. So prüfen Sie Berechtigungen mit dem Befehl find

  3. Alle installierten Pakete mit yum unter CentOS 7 auflisten

  4. Chmod 777 in einen Ordner und alle Inhalte

  5. Berechtigungsproblem mit Laravel auf CentOS

Chmod-Befehl in Linux (Dateiberechtigungen)

Chmod-Befehl unter Linux

Chmod-Befehl – ​​So ändern Sie Dateiberechtigungen in Linux

So ändern Sie den Hostnamen unter CentOS 8

Erfahren Sie, wie Sie den Befehl chmod (Modus ändern) unter Linux verwenden

Linux-Chmod-Befehlsbeispiele