Linux Permissions: Dateirechte verstehen | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

235 Dokumentationen verfügbar

Wissensdatenbank

Linux Permissions Erklaert

Zuletzt aktualisiert: 20.01.2026 um 10:04 Uhr

Linux Permissions: Dateirechte verstehen

Das Linux-Rechtesystem schützt Dateien und Verzeichnisse. Lernen Sie, wie Sie Berechtigungen lesen und setzen.

Die Grundlagen

ls -la
-rw-r--r-- 1 user group  1234 Jan 15 10:00 file.txt
drwxr-xr-x 2 user group  4096 Jan 15 10:00 directory/

└┬┘└┬┘└┬┘
 │  │  │
 │  │  └── Others (alle anderen)
 │  └───── Group (Gruppe)
 └──────── User/Owner (Eigentümer)

d = Directory, - = File, l = Symlink
r = Read (4)
w = Write (2)
x = Execute (1)

Berechtigungen lesen

-rwxr-xr-x

Position 1:    d oder - (Typ)
Position 2-4:  rwx (User)
Position 5-7:  r-x (Group)
Position 8-10: r-x (Others)

# Beispiele
-rw-r--r--  → User: lesen+schreiben, Group+Others: nur lesen
-rwx------  → Nur User kann alles, Rest nichts
drwxr-xr-x  → Verzeichnis, alle können lesen, nur User schreiben

Numerische Notation

r = 4
w = 2
x = 1

rwx = 4+2+1 = 7
rw- = 4+2   = 6
r-x = 4+1   = 5
r-- = 4     = 4

# Zusammengesetzt (User-Group-Others):
755 = rwxr-xr-x (Verzeichnisse, Executables)
644 = rw-r--r-- (normale Dateien)
600 = rw------- (private Dateien)
700 = rwx------ (private Verzeichnisse)

chmod - Rechte ändern

# Numerisch
chmod 755 script.sh
chmod 644 config.txt
chmod 600 secrets.env

# Symbolisch
chmod u+x script.sh       # User: Execute hinzufügen
chmod g-w file.txt        # Group: Write entfernen
chmod o-rwx private.txt   # Others: alles entfernen
chmod a+r public.txt      # All: Read hinzufügen

chmod u=rwx,g=rx,o=rx file  # Explizit setzen

# Rekursiv
chmod -R 755 directory/
chmod -R u+rwX,go+rX dir/   # X = nur Verzeichnisse

# Häufige Anwendungen
chmod 755 /var/www/html           # Webroot
chmod 644 /var/www/html/*.html    # HTML-Dateien
chmod 600 ~/.ssh/id_rsa           # Private SSH Key
chmod 700 ~/.ssh                  # SSH Verzeichnis

chown - Eigentümer ändern

# Syntax: chown user:group file

chown www-data:www-data /var/www/html
chown -R app:app /home/app/
chown :developers project/    # Nur Gruppe ändern
chown admin file.txt          # Nur User ändern

# Rekursiv
chown -R www-data:www-data /var/www/

Spezielle Permissions

# SUID (4): Ausführung als Eigentümer
chmod u+s /usr/bin/passwd
-rwsr-xr-x  # 's' statt 'x' bei User
# Beispiel: passwd läuft als root, auch wenn normaler User es startet

# SGID (2): Ausführung als Gruppe / Vererbung in Verzeichnissen
chmod g+s /shared/projects/
drwxrwsr-x  # 's' statt 'x' bei Group
# Neue Dateien im Verzeichnis erben die Gruppe

# Sticky Bit (1): Nur Eigentümer kann löschen
chmod +t /tmp
drwxrwxrwt  # 't' am Ende
# Jeder kann schreiben, aber nur eigene Dateien löschen

# Numerisch
chmod 4755 file  # SUID + 755
chmod 2755 dir   # SGID + 755
chmod 1777 /tmp  # Sticky + 777

umask - Standard-Rechte

# umask bestimmt Standard-Rechte für neue Dateien

umask        # Aktuellen Wert anzeigen (z.B. 0022)
umask 0022   # Setzen

# Berechnung:
# Dateien: 666 - umask = 644
# Verzeichnisse: 777 - umask = 755

umask 0022:  Dateien=644, Verzeichnisse=755 (Standard)
umask 0077:  Dateien=600, Verzeichnisse=700 (Privat)
umask 0002:  Dateien=664, Verzeichnisse=775 (Gruppen-Schreiben)

ACLs (erweiterte Rechte)

# Installation
apt install acl

# ACL hinzufügen
setfacl -m u:developer:rwx /project/
setfacl -m g:team:rx /project/

# ACL anzeigen
getfacl /project/

# ACL entfernen
setfacl -x u:developer /project/
setfacl -b /project/   # Alle ACLs entfernen

# Standard-ACL für neue Dateien
setfacl -d -m g:team:rwx /project/

Typische Szenarien

# Web-Server (Nginx/Apache)
chown -R www-data:www-data /var/www/html/
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

# Upload-Verzeichnis
chmod 775 /var/www/html/uploads/
chown www-data:developers /var/www/html/uploads/

# Private SSH Keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/authorized_keys

# Shared Development
chmod 2775 /project/
chown -R :developers /project/
# SGID: Neue Dateien gehören automatisch zur Gruppe

Fehlersuche

# "Permission denied" Debug
ls -la /path/to/file
ls -la /path/to/
ls -la /path/

# Prozess-User prüfen
ps aux | grep nginx
# nginx läuft als www-data? → Datei muss für www-data lesbar sein

# namei zeigt Permissions des gesamten Pfads
namei -l /var/www/html/index.html
💡 Tipp: Nutzen Sie nie chmod 777! Das erlaubt jedem alles und ist ein Sicherheitsrisiko. Analysieren Sie stattdessen, welche minimalen Rechte tatsächlich benötigt werden.

Weitere Informationen

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120