Zurück zum Blog

Linux Dateirechte: chmod und chown verständlich erklärt

Wie lesen und ändern Sie Linux Dateirechte? rwx, 755 und 644, chmod und chown, die richtigen Rechte für Website- und SSH-Dateien und „Permission denied“.

Nodesty-Team6 Min. LesezeitServer
Der Schriftzug File Permissions mit chmod, chown und 755 auf dunklem Nodesty-Hintergrund

Linux Dateirechte legen für jede Datei und jeden Ordner auf dem Server fest, wer lesen, schreiben und ausführen darf. Ein Großteil der Fehler „Permission denied“, nicht hochladbarer Dateien, streikender Skripte und abgelehnter SSH-Schlüssel geht auf falsche Rechte oder einen falschen Dateieigentümer zurück. Haben Sie einmal gelernt, die Rechte zu lesen, lösen Sie die meisten dieser Probleme mit wenigen Befehlen.

In dieser Anleitung erklären wir, wie Sie Rechte lesen, wie die Befehle chmod und chown funktionieren, welche Rechte für Websites und SSH-Dateien richtig sind und wie Sie den Fehler „Permission denied“ beheben.

Rechte lesen: ls -l

Nachdem Sie sich per SSH mit Ihrem Server verbunden haben, zeigen Sie die Rechte der Dateien in einem Ordner so an:

ls -l

Die Ausgabe sieht etwa so aus:

-rw-r--r-- 1 max www-data  4120 Oct 29 10:12 index.php
drwxr-xr-x 3 max www-data  4096 Oct 29 10:10 uploads

Die erste Spalte zeigt die Rechte:

  • Erstes Zeichen: - für eine gewöhnliche Datei, d für einen Ordner, l für einen symbolischen Link.
  • Die nächsten drei Zeichen: Die Rechte des Eigentümers (user).
  • Die mittleren drei Zeichen: Die Rechte der Gruppe (group).
  • Die letzten drei Zeichen: Die Rechte aller anderen (others).

Die dritte und vierte Spalte zeigen Eigentümer und Gruppe der Datei; im Beispiel oben ist der Eigentümer max und die Gruppe www-data.

Was bedeuten r, w und x?

BuchstabeBei einer DateiBei einem Ordner
rInhalt lesenEnthaltene Dateien auflisten
wInhalt ändernDateien darin anlegen, löschen, umbenennen
xProgramm oder Skript ausführenOrdner betreten und auf Dateien darin zugreifen

Das Recht x bei Ordnern wird oft übersehen: Fehlt einem Ordner das x, sind die Dateien darin unerreichbar, ganz gleich, welche Rechte sie selbst haben.

Numerische Rechte: 755, 644, 600

Jedes Recht entspricht einer Zahl: r = 4, w = 2, x = 1. Für Eigentümer, Gruppe und alle anderen werden diese Zahlen jeweils addiert:

ZahlIn BuchstabenBedeutungWo verwendet?
755rwxr-xr-xEigentümer darf alles, andere lesen und betretenOrdner, ausführbare Skripte
644rw-r--r--Eigentümer liest und schreibt, andere lesen nurDateien einer Website
700rwx------Nur der Eigentümer hat ZugriffPrivate Ordner wie ~/.ssh
600rw-------Nur der Eigentümer liest und schreibtPasswort- und Schlüsseldateien
640rw-r-----Eigentümer liest und schreibt, Gruppe liest nurKonfigurationsdateien, die die Anwendung lesen muss

Zum Beispiel ist 7 = 4 + 2 + 1 (rwx), 5 = 4 + 1 (r-x), 6 = 4 + 2 (rw-).

chmod: Rechte ändern

chmod 644 index.php
chmod 755 uploads
chmod 600 .env

Sie können die Rechte auch mit Buchstaben ändern. u steht für den Eigentümer, g für die Gruppe, o für alle anderen und a für alle:

chmod u+x deploy.sh     # dem Eigentümer das Ausführungsrecht geben
chmod g-w config.php    # der Gruppe das Schreibrecht entziehen
chmod o-rwx backups     # allen anderen sämtliche Rechte entziehen

Um die Rechte eines Ordners samt Inhalt zu ändern, gibt es -R, allerdings macht chmod -R 755 auch alle Dateien ausführbar. Wollen Sie Ordnern und Dateien unterschiedliche Rechte geben, ist find der bessere Weg:

find /var/www/site -type d -exec chmod 755 {} \;
find /var/www/site -type f -exec chmod 644 {} \;

chown: Eigentümer ändern

sudo chown max index.php
sudo chown max:www-data index.php
sudo chown -R max:www-data /var/www/site

Das Format benutzer:gruppe ändert Eigentümer und Gruppe in einem Schritt. Die meisten Rechteprobleme auf Websites entstehen, weil Dateien root gehören, etwa wenn Sie Dateien mit sudo kopiert oder git clone als root ausgeführt haben.

Die richtigen Rechte für Website-Dateien

Unter Ubuntu und Debian laufen Nginx und Apache mit dem Benutzer www-data, unter AlmaLinux läuft Nginx mit dem Benutzer nginx und Apache mit apache. Auf Ihrem eigenen vServer hat sich folgende sichere Aufteilung bewährt:

  • Die Dateien gehören Ihrem Benutzer, die Gruppe ist die des Webservers: chown -R max:www-data /var/www/site
  • Ordner erhalten 755, Dateien 644.
  • Ordner, in die die Anwendung schreiben muss (bei WordPress wp-content/uploads, bei Laravel storage und bootstrap/cache), erhalten Schreibrechte für die Gruppe: chmod -R 775 storage
  • Konfigurationsdateien mit dem Datenbankpasswort (wp-config.php, .env) erhalten 640 oder 600.

Lassen Sie PHP-FPM mit Ihrem eigenen Benutzer laufen, brauchen Sie keine Schreibrechte für die Gruppe; die Dateien gehören dann ohnehin dem Benutzer, mit dem PHP läuft. Die Einrichtung von Laravel erklären wir in unserer Anleitung Laravel deployen, Nginx in Nginx installieren.

Im Shared Webhosting läuft PHP mit dem Benutzer Ihres Kontos, daher reichen 755 für Ordner und 644 für Dateien. Die Rechte ändern Sie im Dateimanager von cPanel oder DirectAdmin oder in Ihrem FTP-Programm; Details finden Sie in unserem Artikel FTP oder SFTP?.

Verwenden Sie niemals chmod 777

777 bedeutet, dass jeder Benutzer und jeder Prozess auf dem Server die Datei ändern darf. Schon ein einziges gekapertes Plugin einer Website kann dann Schadcode in diese Dateien schreiben. Funktioniert etwas nur mit 777, liegt das Problem nicht bei den Rechten, sondern beim Eigentümer; übertragen Sie die Datei mit chown an den richtigen Benutzer. Was nach einem Angriff auf Ihre Website zu tun ist, erklären wir in unserer Anleitung Website gehackt?.

Rechte für SSH-Dateien

Sind die Rechte der Schlüsseldateien zu offen, verweigert SSH ihre Verwendung:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Auch die private Schlüsseldatei auf Ihrem eigenen Rechner (~/.ssh/id_ed25519) sollte die Rechte 600 haben. Prüfen Sie außerdem, ob Ordner und Datei Ihrem Benutzer gehören; eine als root angelegte authorized_keys verhindert die Anmeldung per Schlüssel.

Den Fehler „Permission denied“ beheben

  1. Prüfen Sie Eigentümer und Rechte der Datei: ls -l datei
  2. Prüfen Sie alle Ordner auf dem Pfad. Fehlt einem einzigen Ordner dazwischen das Recht x, ist die Datei unerreichbar. namei -l zeigt den gesamten Pfad auf einen Blick:
namei -l /var/www/site/public/index.php
  1. Finden Sie heraus, mit welchem Benutzer der Prozess läuft. Webserver, PHP-FPM oder ein systemd-Dienst laufen möglicherweise mit einem anderen Benutzer als Sie: ps -eo user,comm | grep -E 'nginx|php|apache'
  2. Korrigieren Sie Eigentümer oder Rechte; vergeben Sie nicht 777.

Die grundlegenden Linux-Befehle haben wir in unserem Artikel Linux Befehle zusammengestellt.

Sonderrechte: setuid, setgid und Sticky Bit

Manchmal begegnen Ihnen vierstellige Rechte:

  • Sticky Bit (1777): Sorgt in Ordnern, in die alle schreiben dürfen, etwa /tmp, dafür, dass Benutzer nur ihre eigenen Dateien löschen können.
  • setgid (2775) bei Ordnern: Neue Dateien im Ordner übernehmen die Gruppe des Ordners. Praktisch, wenn mehrere Benutzer im selben Projektordner arbeiten.
  • setuid: Lässt ein Programm mit den Rechten des Dateieigentümers statt mit denen des Aufrufers laufen. Wird bei Systemprogrammen wie passwd verwendet; vergeben Sie es nicht für Ihre eigenen Dateien.

Dateirechte auf Nodesty-Servern

Bei den Nodesty-Paketen AMD Ryzen 9 9950X vServer und AMD EPYC 7763 vServer legen Sie Eigentümer und Rechte Ihrer Dateien dank vollem Root-Zugriff ganz nach Bedarf fest. Wenn Sie sich nicht um die Serververwaltung kümmern möchten, läuft PHP in unseren Webhosting-Paketen mit dem Benutzer Ihres Kontos; die Rechte ändern Sie mit wenigen Klicks im Dateimanager von cPanel oder DirectAdmin.

Häufig gestellte Fragen

Was bedeuten 755 und 644?

755 bedeutet, dass der Eigentümer die Datei lesen, schreiben und ausführen darf, während Gruppe und alle anderen nur lesen und ausführen dürfen; das ist die übliche Berechtigung für Ordner. 644 bedeutet, dass der Eigentümer lesen und schreiben darf, alle anderen nur lesen; das ist die richtige Berechtigung für gewöhnliche Dateien einer Website.

Warum sollte ich chmod 777 nicht verwenden?

777 bedeutet, dass jeder Benutzer und jeder Prozess auf dem Server die Datei ändern darf. Schon ein einziges gekapertes Plugin einer Website kann dann Schadcode in diese Dateien schreiben. Funktioniert etwas nur mit 777, liegt das Problem nicht bei den Rechten, sondern beim Eigentümer der Datei; übertragen Sie sie mit chown an den richtigen Benutzer.

Was ist der Unterschied zwischen chmod und chown?

chmod ändert, wer was mit einer Datei tun darf, also die Rechte zum Lesen, Schreiben und Ausführen. chown ändert dagegen den Eigentümer und die Gruppe der Datei. Die meisten Rechteprobleme auf Websites entstehen nicht durch falsche Berechtigungen, sondern dadurch, dass die Dateien dem falschen Benutzer gehören.

Wie ändere ich Dateirechte im Webhosting?

Im Dateimanager von cPanel und DirectAdmin klicken Sie mit der rechten Maustaste auf eine Datei und ändern die Berechtigungen, oder Sie tragen den Wert in Ihrem FTP-Programm in den Dateieigenschaften ein. Im Shared Hosting sind 755 für Ordner und 644 für Dateien in der Regel die richtigen Werte.

Warum wird mein SSH-Schlüssel abgelehnt?

Sind die Rechte der Schlüsseldateien zu offen, hält SSH sie für unsicher und verwendet sie nicht. Stellen Sie sicher, dass der Ordner ~/.ssh auf dem Server die Rechte 700 und die Datei authorized_keys die Rechte 600 hat und beide Ihrem Benutzer gehören. Auch die private Schlüsseldatei auf Ihrem eigenen Rechner sollte die Rechte 600 haben.

Ich kann eine Datei ohne sudo nicht ändern. Was tun?

Die Datei gehört vermutlich root oder einem anderen Benutzer. Dateien, die Sie oder Ihre Anwendung regelmäßig ändern müssen, übertragen Sie mit chown an den betreffenden Benutzer. Systemdateien bearbeiten Sie dagegen weiterhin mit sudo; übertragen Sie sie nicht an einen normalen Benutzer.

Nodesty

Über den Autor

Nodesty-Team · Infrastruktur und Support

Das Nodesty-Team betreibt unsere Server, unser Netzwerk und unseren DDoS-Schutz im Alltag und beantwortet Support-Anfragen rund um die Uhr. Diese Ratgeber entstehen aus dieser Arbeit.

Verwandte Artikel

Starte deinen Server jetzt.

Erstellen, wachsen und skalieren Sie Ihre Projekte grenzenlos auf der Premium-Infrastruktur von Nodesty.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································