Verstehen von chmod 644 und -rw-r–r– unter Linux: Dateiberechtigungen klar erklärt

目次

1. Einführung

Was sind „Zugriffsrechte“ in Linux?

In Linux‑ und Unix‑ähnlichen Systemen ist die korrekte Verwaltung von Datei‑ und Verzeichniszugriffsrechten äußerst wichtig. Das ist nicht nur aus Sicherheitssicht entscheidend, sondern auch für den stabilen Betrieb des Systems.

Viele Menschen haben sich wahrscheinlich schon gefragt, was Symbole wie -rw-r--r-- bedeuten, wenn sie Dateilisten im Terminal ansehen.

Die Beziehung zwischen chmod und -rw-r–r–

Diese Symbole stellen Dateizugriffsrechte in symbolischer Notation dar. Der Befehl chmod wird verwendet, um diese Rechte zu setzen und zu ändern. Mit anderen Worten: Wenn Sie chmod benutzen, um einer Datei bestimmte Rechte zuzuweisen, wird das Ergebnis als Symbole wie -rw-r--r-- angezeigt.

Zweck dieses Artikels und Zielgruppe

Dieser Artikel erklärt, was -rw-r--r-- tatsächlich bedeutet und wie man es mit chmod setzt oder ändert, auf eine Weise, die für Anfänger leicht verständlich ist. Wir behandeln außerdem Sicherheitsaspekte und praktische Anwendungsbeispiele aus der Praxis.

Der Inhalt richtet sich an alle von Linux‑Anfängern bis zu fortgeschritteneren Benutzern, die sich mit Terminal‑Operationen vertraut machen, mit dem Ziel, praktisches Wissen zu vermitteln, das in realen Arbeitsumgebungen einsetzbar ist.

2. Was ist chmod? (Grundlagen)

Die Rolle des chmod‑Befehls

chmod (ausgesprochen „change mode“) ist ein Befehl, der in Linux‑ und Unix‑ähnlichen Betriebssystemen verwendet wird, um Zugriffsrechte von Dateien und Verzeichnissen zu ändern.
Mit diesem Befehl können Sie flexibel steuern, wer welche Operationen (lesen, schreiben, ausführen) durchführen darf.

Richtige Rechteinstellungen sind nicht nur für Sicherheit, sondern auch zur Vermeidung von Datei‑Sharing‑ und Ausführungsproblemen entscheidend.

Grundsyntax von chmod

chmod [options] [permissions] filename

Zum Beispiel:

chmod 644 sample.txt

Dieser Befehl ändert die Rechte von sample.txt wie folgt:

-rw-r--r--  1 user group 1234 Apr 13 20:00 sample.txt
  • Besitzer (user): Lesen und Schreiben erlaubt (rw-)
  • Gruppe: Nur Lesen (r–)
  • Andere: Nur Lesen (r–)

Zwei Möglichkeiten, Rechte anzugeben

Es gibt zwei Methoden, Rechte mit chmod anzugeben:

  • Numerischer Modus
  • Beispiel: chmod 755 script.sh
  • Diese Methode weist Rechte mithilfe von Zahlen zu.
  • Symbolischer Modus
  • Beispiel: chmod u=rw,g=r,o=r file.txt
  • Diese Methode verwendet Symbole wie u (user), g (group), o (others) und r/w/x.

Beide Methoden führen zum gleichen Ergebnis. Der numerische Modus ist schnell für Massenänderungen, während der symbolische Modus flexiblere Kontrolle ermöglicht.

Unterschied zwischen chmod und chown

Ein häufig verwechselter Befehl ist chown:

  • chmod : ändert Zugriffsrechte
  • chown : ändert Dateieigentümer und Gruppe

Da ihre Zwecke unterschiedlich sind, ist es wichtig, die Rolle jedes Befehls klar zu verstehen.

3. Das Verständnis der Bedeutung von -rw-r–r–

Aufbau der Rechte‑Symbole

Wenn Sie ls -l in Linux ausführen, wird die Dateiinformation im folgenden Format angezeigt:

-rw-r--r--  1 user group  1234 Apr 13  2025 sample.txt

Der linke Teil, -rw-r--r--, stellt die Zugriffsrechte der Datei dar. Dieses zu verstehen, lässt Sie genau wissen, wer was mit der Datei tun kann.

Detaillierte Aufschlüsselung jedes Teils

① Erstes Zeichen: Dateityp

SymbolMeaning
-Regular file
dDirectory
lSymbolic link
bBlock device
cCharacter device

Im Fall von -rw-r--r-- zeigt das führende - eine reguläre Datei an.

② Zeichen 2–10: Rechte (3 Zeichen × 3 Gruppen)

  • Besitzer (user) : rw- Lesen und Schreiben erlaubt; Ausführen nicht erlaubt.
  • Gruppe : r-- Nur Lesen.
  • Andere : r-- Nur Lesen.

Das bedeutet, dass nur der Besitzer die Datei bearbeiten kann, während alle anderen sie nur ansehen können.

Numerische Darstellung: Was 644 bedeutet

Linux‑Rechte können auch mit numerischer (oktal) Notation ausgedrückt werden.

Das numerische Gegenstück zu -rw-r--r-- ist 644.

User TypeSymbolicNumberMeaning
Ownerrw-6Read + Write
Groupr--4Read only
Othersr--4Read only

Die numerischen Werte werden wie folgt berechnet:

  • Lesen (r) = 4
  • Schreiben (w) = 2
  • Ausführen (x) = 1

Thus, rw- = 4 + 2 = 6, and each r-- = 4, resulting in 644.

Why This Permission Is Commonly Used

-rw-r--r-- (644) is a very common permission for public files and static web server content such as HTML and CSS.

  • Only the owner can modify the file, preventing unintended changes
  • Other users can read the file, allowing sharing and public access

When used correctly, this setting balances security and usability.

4. How to Set -rw-r–r– Using chmod (Practical Guide)

Changing Permissions with the chmod Command

File and directory access permissions can be freely changed using the chmod command. For example, if you want to set permissions to -rw-r--r--, simply apply permission 644.

Setting Permissions Using Numeric Mode

Use the format chmod 644 filename.

chmod 644 document.txt

This command changes the permissions of document.txt as follows:

-rw-r--r--  1 user group 1234 Apr 13 20:00 document.txt
  • Owner (user): read and write allowed (rw-)
  • Group: read-only (r–)
  • Others: read-only (r–)

Setting Permissions Using Symbolic Mode

If you need more flexible control, symbolic mode is useful.

chmod u=rw,g=r,o=r document.txt

This command means:

  • u=rw : grant read and write permissions to the owner
  • g=r : grant read-only permission to the group
  • o=r : grant read-only permission to others

The result is exactly the same as using numeric mode 644.

Important Notes When Applying Permissions to Directories

Unlike files, directories require execute permission (x) to be accessible.

For example, the following setting may restrict access:

chmod 644 my_folder

With this configuration, read permission is granted, but users cannot enter the directory because execute permission is missing.

Correct example:

chmod 755 my_folder
  • Owner: read, write, execute
  • Group and others: read and execute

This allows other users to list and access files inside the directory.

Recursively Changing Permissions: The -R Option

If you want to change permissions for many files and subdirectories at once, use the -R (recursive) option.

chmod -R 644 my_folder

This applies permission 644 to all files under my_folder. However, this approach comes with important caveats.

5. Checking Permissions with the ls -l Command

How to View File Permissions

To check file and directory permissions in Linux, use the standard ls -l command. This displays detailed information such as permissions, owner, file size, and last modified date.

Basic Usage

ls -l

The output looks like this:

-rw-r--r--  1 naoya devs  2048 Apr 13 20:00 index.html

Each column has the following meaning:

FieldDescription
-rw-r--r--Permissions
1Number of hard links
naoyaOwner (user)
devsGroup
2048File size (bytes)
Apr 13 20:00Last modified date
index.htmlFile name

How to Read the Permission Field

Focus on the -rw-r--r-- portion. It can be broken down as follows:

  • First character: file type
  • - : regular file
  • d : directory
  • l : symbolic link
  • Remaining nine characters: permissions (3 × 3 sets)
  • Owner: rw- → read and write
  • Group: r-- → read-only
  • Others: r-- → read-only

This tells you that only the owner can edit the file, while others can only read it.

Checking a Specific File

To check permissions for a specific file, specify the file name:

ls -l index.html

This is useful when working in directories containing many files.

Checking Directory Permissions

Directories can also be checked using ls -l. To view the directory itself rather than its contents, use the -d option.

ls -ld my_folder

This displays permission information for my_folder only.

Safe Permission Management

After modifying permissions with chmod, it is recommended to always verify the result using ls -l.

Incorrect settings can lead to security issues or unexpected behavior.

Sie können es auch mit Pipes zum Filtern kombinieren:

ls -l | grep '.sh'

Dies filtert und zeigt nur Shell‑Skript‑Dateien an.

6. Überprüfen und Ändern von Berechtigungen mit GUI‑Tools (Einsteiger‑freundlich)

Eine Option für diejenigen, die sich mit der Befehlszeile unwohl fühlen

Linux wird häufig über das Terminal und die Befehlszeile bedient, aber viele Anfänger empfinden textbasierte Schnittstellen als schwierig oder fehleranfällig.
Für solche Benutzer können Dateiberechtigungen auch mit GUI‑ (Graphical User Interface)‑Tools überprüft und geändert werden.

Verwendung des Ubuntu-Dateimanagers (Nautilus)

Linux‑Distributionen wie Ubuntu enthalten einen Standard‑Dateimanager namens Nautilus, ähnlich dem Windows Explorer.

So prüfen Sie Berechtigungen:

  1. Rechtsklicken Sie auf die gewünschte Datei oder das Verzeichnis
  2. Wählen Sie „Eigenschaften“
  3. Öffnen Sie den Reiter „Berechtigungen“ (die Bezeichnung kann je nach Version variieren)

Was Sie dort tun können:

  • Besitzer und Gruppe anzeigen und ändern (Administratorrechte erforderlich)
  • Lese‑, Schreib‑ und Ausführungsrechte umschalten
  • Änderungen werden sofort übernommen

Anstatt symbolischer Notationen wie rw- oder r-- werden Berechtigungen in klaren Beschreibungen wie „Nur lesen“ oder „Lesen und schreiben“ angezeigt, was sie für Anfänger leicht verständlich macht.

WinSCP (SFTP‑Client für Windows‑Benutzer)

Beim Verbinden von Windows zu einem entfernten Linux‑Server ermöglicht WinSCP die Verwaltung von Berechtigungen über eine GUI.

Schritte:

  1. Melden Sie sich mit WinSCP am Server an
  2. Rechtsklicken Sie auf eine Datei und wählen Sie „Eigenschaften“
  3. Ändern Sie die Berechtigungswerte (z. B. 644) oder verwenden Sie die Kontrollkästchen
  4. Klicken Sie auf „OK“, um die Änderungen zu übernehmen

Vorteile:

  • Berechtigungen können sowohl im numerischen als auch im symbolischen Format angezeigt werden
  • Rekursive Berechtigungsänderungen werden über die GUI unterstützt

Hinweise:

  • Dateien, die Root‑Rechte benötigen, können ohne sudo‑Berechtigungen nicht geändert werden
WinSCP - Free SFTP and FTP client

WinSCP is a popular free file manager for Windows supporting…

FileZilla (plattformübergreifender SFTP‑Client)

Der plattformübergreifende SFTP‑Client FileZilla, verfügbar für macOS und Linux, ermöglicht ebenfalls das Ändern von Berechtigungen.

Schritte:

  1. Verbinden Sie sich mit dem Server
  2. Rechtsklicken Sie auf die gewünschte Datei
  3. Wählen Sie „Dateiberechtigungen“
  4. Passen Sie die Berechtigungen über Kontrollkästchen oder numerische Werte an und klicken Sie auf „OK“

Vorteile und Einschränkungen von GUI‑basierten Operationen

Vorteile:

  • Für Anfänger weniger fehleranfällig
  • Änderungen können sofort visuell bestätigt werden
  • Keine Notwendigkeit, die Befehls‑Syntax auswendig zu lernen

Einschränkungen:

  • Einige Serverumgebungen erlauben keine Berechtigungsänderungen über GUI‑Tools
  • Angezeigte Werte spiegeln nicht immer die tatsächlich angewendeten Berechtigungen wider, daher wird eine Überprüfung mit ls -l empfohlen

FileZilla - The free FTP solution for both client and server…

7. Wichtige Hinweise und Fehlersuche für chmod

Es funktioniert immer noch nicht – warum?

Selbst nach dem Ändern von Berechtigungen mit chmod können Dateien nicht wie erwartet funktionieren. In den meisten Fällen liegt das an fehlerhaft konfigurierten Berechtigungen oder Missverständnissen. Im Folgenden finden Sie häufige reale Probleme und deren Lösungen.

„Permission denied“-Fehler

Symptom:

bash: ./script.sh: Permission denied

Ursache:

  • Die Datei hat keine Ausführungsberechtigung (x)

Lösung:

chmod +x script.sh

Oder im numerischen Modus:

chmod 755 script.sh

Beachten Sie, dass Lese‑ oder Schreibberechtigungen nicht automatisch Ausführungsberechtigungen bedeuten.

Verzeichnisse ohne Ausführungsberechtigung können nicht zugegriffen werden

Das Anwenden von chmod 644 auf ein Verzeichnis kann den Zugriff auf dessen Inhalt verhindern.

Grund:

  • Auf Verzeichnissen ist die Ausführungsberechtigung (x) erforderlich, um sie zu betreten und deren Inhalt aufzulisten.

Beispiel:

chmod 644 my_folder
ls my_folder

Dies kann zu einem Fehler führen.

Lösung:

chmod 755 my_folder

Fallstricke rekursiver Änderungen (-R)

Obwohl chmod -R praktisch ist, wendet es dieselben Berechtigungen sowohl auf Dateien als auch auf Verzeichnisse an, was zu unerwarteten Problemen führen kann.

Häufiger Fehler:

chmod -R 644 /var/www/html

Damit werden die Ausführungsberechtigungen von Verzeichnissen entfernt, sodass sie nicht mehr zugänglich sind.

Korrekte Vorgehensweise:

# Apply execute permissions to directories
find /var/www/html -type d -exec chmod 755 {} \;

# Apply file permissions
find /var/www/html -type f -exec chmod 644 {} \;

Eigentümer- und Gruppen-Mismatch

Berechtigungen allein reichen nicht aus; Dateieigentümer und Gruppeneinstellungen sind ebenfalls wichtig.
Zum Beispiel, wenn ein Webserver‑Benutzer wie apache eine Datei lesen muss, der Eigentümer jedoch ein normaler Benutzer ist und andere keine Leseberechtigung haben, wird die Datei nicht korrekt ausgeliefert.

Lösungen:

  • Eigentümer ändern: sudo chown www-data:www-data index.html
  • Gruppen‑Zugriff gewähren: chmod 640 index.html (falls die Gruppe passend ist)

Warum chmod 777 gefährlich ist

Manche Benutzer versuchen, Probleme zu beheben, indem sie die Berechtigungen auf 777 setzen, aber das ist extrem gefährlich.

Gründe:

  • Jeder kann die Datei lesen, schreiben und ausführen
  • Hohes Risiko von Manipulation oder bösartiger Skriptausführung

Empfohlene Best Practices:

  • Dateien : 644 oder 600
  • Verzeichnisse : 755 oder 700
  • Skripte/Binärdateien : 755 (nach Bedarf)

8. Praktische Anwendungsfälle und gängige Szenarien

Wie werden chmod‑Berechtigungen in realen Umgebungen verwendet?

Der Befehl chmod und Berechtigungen wie -rw-r--r-- werden häufig in realen Serveroperationen und Entwicklungsumgebungen verwendet.
Im Folgenden sind mehrere repräsentative Szenarien aufgeführt, die zeigen, wie Berechtigungen in der Praxis angewendet werden.

1. Verwaltung von HTML‑Dateien auf einem Webserver

Szenario:
Beim Veröffentlichen von HTML‑Dateien auf einem Webserver wie Apache oder Nginx ist die typische Berechtigung -rw-r--r-- (644).

chmod 644 index.html

Warum 644?

  • Der Eigentümer (Seitenadministrator) benötigt Schreibzugriff
  • Der Webserver‑Benutzer (z. B. www-data) benötigt nur Lesezugriff
  • Schreibzugriff für andere ist unnötig und unsicher

Diese Konfiguration ermöglicht die sichere Veröffentlichung von Webinhalten nach dem Prinzip der minimalen Rechte.

2. Ausführen‑Berechtigung für Skriptdateien gewähren

Szenario:
Sie haben ein Shell‑Skript backup.sh erstellt, aber die Ausführung schlägt mit dem Fehler „Permission denied“ fehl.

chmod 755 backup.sh

Bedeutung dieser Einstellung:

  • Eigentümer: lesen, schreiben, ausführen (rwx)
  • Gruppe und andere: lesen und ausführen (rx)

Damit können andere das Skript ausführen, während das Bearbeiten auf den Eigentümer beschränkt bleibt.

3. Zugriff auf sensible Dateien einschränken

Szenario:
Sie verwalten eine Datei secrets.txt mit API‑Schlüsseln oder Passwörtern und möchten verhindern, dass andere darauf zugreifen.

chmod 600 secrets.txt

Bedeutung:

  • Eigentümer: nur lesen und schreiben
  • Gruppe und andere: kein Zugriff

Dies ist eine kritische Sicherheits‑Best‑Practice. Sensitive Dateien sollten immer mit 600 oder 400 (nur lesbar) verwaltet werden.

4. Sicheres Teilen eines Verzeichnisses

Szenario:
Sie erstellen ein gemeinsames Verzeichnis shared_folder, auf das mehrere Entwickler zugreifen.

chmod 770 shared_folder

Bedeutung:

  • Eigentümer und Gruppe: volle Berechtigungen (rwx)
  • Andere: kein Zugriff

Indem Sie das Entwicklungsteam als Gruppe zuweisen, ermöglichen Sie sichere und effiziente Zusammenarbeit. Die Gruppenmitgliedschaft kann mit chgrp angepasst werden.

5. Probleme durch Fehlkonfiguration vermeiden

Szenario:
Sie führen versehentlich chmod -R 777 . aus, wodurch alle Dateien für jeden schreibbar werden.

Empfohlene Vorsichtsmaßnahmen:

  • Immer find verwenden, um zwischen Dateien und Verzeichnissen zu unterscheiden
  • Vorab die Berechtigungen mit ls -l prüfen
  • Änderungen zuerst in einer Staging‑Umgebung testen

9. Häufig gestellte Fragen (FAQ)

Q1. Was ist der Unterschied zwischen chmod 644 und -rw-r--r--?

A. Sie stellen dieselbe Berechtigung dar; nur die Schreibweise unterscheidet sich.

  • chmod 644 : numerische Berechtigungsspezifikation
  • -rw-r--r-- : symbolische Darstellung, die von ls -l angezeigt wird

Q2. Was passiert, wenn eine Datei keine Ausführungsberechtigung hat?

A. Das Ausführen von Skripten oder Binärdateien schlägt fehl.

bash: ./script.sh: Permission denied

Lösung:

chmod +x script.sh

Q3. Ist es sicher, 644 auf Verzeichnissen zu setzen?

A. Im Allgemeinen nein.

Verzeichnisse benötigen Ausführungsrechte (x), um zugänglich zu sein.

Korrekte Einstellung:

chmod 755 directory_name

Q4. Gibt es Risiken beim Verwenden von chmod -R?

A. Ja. Die gleichen Rechte werden auf Dateien und Verzeichnisse angewendet.

chmod -R 644 my_project/

Dies entfernt Ausführungsrechte von Verzeichnissen.

Sichererer Ansatz:

find my_project/ -type d -exec chmod 755 {} \;
find my_project/ -type f -exec chmod 644 {} \;

Q5. Ich bekomme ständig „Permission denied.“ Was sollte ich überprüfen?

A. Überprüfen Sie Folgendes:

  • Die Datei hat Ausführungsrechte, wenn sie ausgeführt wird
  • Sie sind der Eigentümer oder haben Schreibrechte
  • Das Verzeichnis hat Ausführungsrechte
  • Sie haben sudo-Berechtigungen, falls erforderlich

Q6. Ich möchte eine Datei teilen, aber Bearbeiten verhindern. Was sollte ich tun?

A. Verwenden Sie Rechte 644 oder 444.

chmod 644 share.txt
  • 644: Andere können nur lesen
  • 444: Jeder hat nur Lesezugriff

Q7. Ich habe versehentlich Rechte geändert. Wie kann ich sie wiederherstellen?

A. Vergleichen Sie mit einer korrekt konfigurierten Datei.

ls -l /path/to/correct_file

Wenden Sie die Rechte mit chmod erneut an. Idealweise dokumentieren Sie die Standardrechte für Ihr Projekt.

10. Zusammenfassung

Warum das Verständnis von chmod und Rechten wichtig ist

Dieser Artikel hat den chmod-Befehl und die Bedeutung symbolischer Rechte wie -rw-r--r-- erklärt, die in Linux- und Unix-ähnlichen Systemen weit verbreitet sind.

Diese Konzepte sind essenziell, um System-Sicherheit, betriebliche Stabilität und genaues Dateifreigabe zu gewährleisten.

Wichtige Erkenntnisse

  • chmod ändert Zugriffsrechte für Dateien und Verzeichnisse
  • -rw-r--r-- bedeutet, der Eigentümer kann lesen und schreiben, andere können nur lesen
  • Numerische ( 644 ) und symbolische ( -rw-r--r-- ) Darstellungen sind äquivalent
  • Rechte können mit numerischen oder symbolischen Modi gesetzt werden
  • ls -l wird verwendet, um Rechte zu überprüfen
  • GUI-Tools wie Nautilus, WinSCP und FileZilla können Rechte ebenfalls verwalten
  • Falsche Rechte verursachen oft „Permission denied“-Fehler
  • Es gibt immer einen Grund hinter gängigen Rechtermustern

Die „Beste“ Berechtigung hängt vom Kontext ab

Es gibt keine universelle Rechteeinstellung, die für alle Fälle passt.
Rechte sollten immer basierend auf Zweck, Benutzern und erforderlichem Sicherheitsniveau gewählt werden.

Abschließender Rat

Während Rechte anfangs komplex wirken mögen, ermöglicht das Meistern von chmod, Probleme proaktiv zu verhindern und Systeme sicher zu betreiben.

Fragen Sie sich immer:
Wer sollte auf diese Datei zugreifen und zu welchem Zweck?
Diese Perspektive zu behalten, hilft Ihnen, sichere und zuverlässige Linux-Umgebungen aufzubauen.

年収訴求