chmod & chown
chmod & chown – Cheatsheet
Schnellreferenz für Dateiberechtigungen unter Linux.
Berechtigungen lesen
ls -la datei.txt
# -rwxr-xr-- 1 user group 4096 Jan 15 10:30 datei.txt
# │├─┤├─┤├─┤
# │ │ │ └── Others
# │ │ └───── Group
# │ └──────── Owner
# └────────── Typ (- = Datei, d = Verzeichnis)
Oktal-Werte
| Oktal | Berechtigung | Bedeutung |
|---|---|---|
| 7 | rwx | Alles |
| 6 | rw- | Lesen + Schreiben |
| 5 | r-x | Lesen + Ausführen |
| 4 | r-- | Nur Lesen |
| 0 | --- | Nichts |
Berechnung: r=4 + w=2 + x=1
Häufige Kombinationen
chmod 755 script.sh # rwxr-xr-x - Skripte
chmod 644 datei.txt # rw-r--r-- - Dateien
chmod 700 privat/ # rwx------ - Nur Owner
chmod 600 .ssh/id_rsa # rw------- - Sensible Dateien
chmod 775 shared/ # rwxrwxr-x - Gruppenverzeichnis
chmod – Symbolisch
# Ausführbar für Owner
chmod u+x script.sh
# Schreiben für Gruppe hinzufügen
chmod g+w datei.txt
# Others: Alles entfernen
chmod o-rwx geheim.txt
# Alle dürfen lesen
chmod a+r public.txt
# Exakt setzen
chmod u=rwx,go=rx script.sh
Wer: u=Owner, g=Group, o=Others, a=All
chown – Eigentümer ändern
# Nur Owner
sudo chown max datei.txt
# Owner und Gruppe
sudo chown max:developers datei.txt
# Nur Gruppe
sudo chown :developers datei.txt
sudo chgrp developers datei.txt
# Rekursiv
sudo chown -R max:max /home/max/
Rekursiv ändern
# Alles im Verzeichnis
chmod -R 755 /pfad/
chown -R user:group /pfad/
# Nur Verzeichnisse
find /pfad -type d -exec chmod 755 {} \;
# Nur Dateien
find /pfad -type f -exec chmod 644 {} \;
Spezielle Bits
# SUID - Ausführung als Owner
chmod u+s programm # oder 4755
# -rwsr-xr-x
# SGID - Gruppe vererben
chmod g+s verzeichnis/ # oder 2775
# drwxrwsr-x
# Sticky Bit - Nur eigene Dateien löschen
chmod +t verzeichnis/ # oder 1777
# drwxrwxrwt
umask
# Anzeigen
umask
umask -S
# Setzen (temporär)
umask 022 # Standard: Dateien 644, Verzeichnisse 755
umask 077 # Restriktiv: Dateien 600, Verzeichnisse 700
ACL (erweiterte Rechte)
# Anzeigen
getfacl datei.txt
# User Rechte geben
setfacl -m u:anna:rwx datei.txt
# Gruppe Rechte geben
setfacl -m g:team:rx datei.txt
# Entfernen
setfacl -x u:anna datei.txt
# Alle ACLs löschen
setfacl -b datei.txt
Typische Setups
Webserver
sudo chown -R www-data:www-data /var/www/
sudo find /var/www -type d -exec chmod 755 {} \;
sudo find /var/www -type f -exec chmod 644 {} \;
SSH-Verzeichnis
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/authorized_keys
Team-Projekt
sudo mkdir /projects/team
sudo chown :developers /projects/team
sudo chmod 2775 /projects/team