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

234 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