Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Linux 02.06.2026 · 11 min Lesezeit

Linux-Benutzer, Gruppen und Rechte verstehen (chmod, chown, sudo)

Linux-Benutzer, Gruppen und Rechte sauber verstehen: ls -l lesen, chmod, chown, Gruppen, sudo und jeden Schritt direkt verifizieren, ohne dich mit falschen Rechten auszusperren.

Linux-Benutzer, Gruppen und Rechte verstehen (chmod, chown, sudo)

Linux-Benutzer, Gruppen und Rechte sind eine der Grundlagen, auf denen fast jede spätere Linux-Anleitung aufbaut. Ob SSH-Schlüssel, Webserver, Cronjob, systemd-Service oder Docker-Verzeichnis: Am Ende entscheidet fast immer das Rechtemodell darüber, wer etwas lesen, schreiben oder ausfühhren darf. Genau deshalb lohnt es sich, dieses Thema einmal sauber zu verstehen, statt nur einzelne Befehle auswendig zu lernen.

Das Grundmodell ist einfach: Jede Datei und jedes Verzeichnis gehört einem Benutzer, einer Gruppe und hat Rechte für alle anderen. Mit chmod änderst du Rechte, mit chown Besitzer und Gruppen, und mit sudo führst du Befehle mit erhöhten Rechten aus. In dieser Anleitung gehen wir Schritt für Schritt vor und prüfen nach jedem wichtigen Punkt, ob das Ergebnis wirklich zu dem passt, was du erwartest.

Voraussetzungen

  • Zugang zu einem Linux-System mit Terminal
  • Ein Benutzerkonto mit sudo-Rechten oder direkter Root-Zugang
  • Ein Testverzeichnis, in dem du gefahrlos Üben kannst
  • Keine Arbeit direkt in produktiven Systempfaden, solange du die Wirkung eines Befehls noch nicht sicher einschätzzen kannst

Wichtig vorab: Übe neue Rechte- oder Benutzerbefehle zuerst in einem eigenen Testverzeichnis. So lernst du die Wirkung, ohne dir versehentlich SSH-Zugriff, Webserver-Dateien oder sudo-Rechte kaputtzumachen.

Schritt 1: Eine kleine Testumgebung anlegen

Bevor du echte Systemdateien anfasst, legst du dir eine kleine Spielwiese an. Damit kannst du Rechte, Besitzer und Gruppen ohne Risiko ausprobieren.

mkdir -p ~/rechte-labor
cd ~/rechte-labor
printf 'Hallo Linux
' > datei.txt
printf '#!/bin/bash
echo Test
' > script.sh
mkdir projektordner
ls -l

Du solltest jetzt mindestens eine normale Datei, ein kleines Skript und ein Verzeichnis sehen. An diesen drei Typen lassen sich die meisten Unterschiede gut erklären.

Verifizieren: Der Schritt ist erfolgreich, wenn ls -l eine Datei datei.txt, eine Datei script.sh und ein Verzeichnis projektordner anzeigt. Wenn du die Objekte nicht siehst, bist du entweder nicht im richtigen Verzeichnis oder der Befehl wurde nicht vollständig ausgefährt.

Schritt 2: ls -l lesen und das Rechtemodell verstehen

Jetzt lesen wir, was Linux dir über Dateien überhaupt anzeigt. Der wichtigste Befehl dafür ist ls -l.

ls -l datei.txt script.sh
ls -ld projektordner

Typische Ausgabe:

-rw-r--r-- 1 marcel marcel   12 Jun 12 10:30 datei.txt
-rw-r--r-- 1 marcel marcel   22 Jun 12 10:30 script.sh
drwxr-xr-x 2 marcel marcel 4096 Jun 12 10:30 projektordner

Die ersten zehn Zeichen sind der wichtigste Teil:

TeilBedeutung
- oder dDateityp: - für Datei, d für Verzeichnis, l für Symlink
rw-Rechte des Besitzers
r--Rechte der Gruppe
r--Rechte für alle anderen

Die einzelnen Buchstaben bedeuten:

  • r = lesen
  • w = schreiben
  • x = ausfühhren
  • - = dieses Recht ist nicht gesetzt

Bei Verzeichnissen ist x besonders wichtig: Es bedeutet nicht "Programm ausführen", sondern vereinfacht gesagt "dieses Verzeichnis betreten und darin auflösen dürfen".

stat datei.txt

Verifizieren: Du hast den Schritt verstanden, wenn du an einer Ausgabe wie -rw-r--r-- sagen kannst: Besitzer darf lesen und schreiben, Gruppe nur lesen, alle anderen nur lesen. Bei einem Verzeichnis wie drwxr-xr-x erkennst du zusätzlich, dass das erste Zeichen d für Verzeichnis steht.

Schritt 3: chmod mit 644, 755, 600 und 700 sauber einsetzen

Mit chmod setzt du Rechte. Die gebräuchlichste Schreibweise ist die Oktal-Notation. Dahinter steckt immer dieselbe Rechnung:

  • r = 4
  • w = 2
  • x = 1

Die drei Ziffern stehen immer für Besitzer, Gruppe, andere. Ein paar typische Werte:

OktalSymbolischTypischer Einsatz
644rw-r--r--Normale Dateien wie Text- oder Konfigurationsdateien
755rwxr-xr-xViele Verzeichnisse und ausfühhrbare Skripte
600rw-------Private Dateien, zum Beispiel SSH-Private-Keys
700rwx------Private Verzeichnisse, zum Beispiel ~/.ssh
chmod 644 datei.txt
chmod 755 script.sh
chmod 700 projektordner
ls -l datei.txt script.sh
ls -ld projektordner

Wichtiger Praxispunkt: Ein pauschales chmod -R 644 verzeichnis ist als allgemeiner Tipp falsch. Dateien können mit 644 oft sinnvoll sein, Verzeichnisse aber brauchen in vielen Fällen das Execute-Bit, damit du sie überhaupt betreten kannst. Wenn du rekursiv sauber arbeiten musst, behandelst du Dateien und Verzeichnisse getrennt.

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

Verifizieren: Nach chmod 755 script.sh sollte ls -l bei der Datei mit -rwxr-xr-x beginnen. Nach chmod 700 projektordner sollte die Verzeichniszeile mit drwx------ beginnen. Wenn ein Verzeichnis stattdessen auf drw-r--r-- steht, fehlt das entscheidende Execute-Bit.

Schritt 4: chmod mit symbolischer Notation gezielt ändern

Die symbolische Notation ist dann praktisch, wenn du nicht alles neu setzen willst, sondern nur ein bestimmtes Recht ergänzen oder entfernen möchtest.

KürzelBedeutung
uUser, also der Besitzer
gGroup, also die Gruppe
oOther, also alle anderen
aAlle drei zusammen
+Recht hinzufügen
-Recht entfernen
=Genau dieses Recht setzen
chmod u+x script.sh
chmod g-w datei.txt
chmod o-r datei.txt
ls -l datei.txt script.sh

Das ist oft lesbarer als Zahlen, vor allem wenn du nur eine kleine Änderung vornehmen willst.

Verifizieren: Wenn du chmod u+x script.sh ausfühhrst, muss beim Besitzer ein x auftauchen. Wenn du chmod o-r datei.txt ausfühhrst, darf im letzten Dreierblock kein r mehr stehen.

Schritt 5: Besitzer und Gruppen mit chown und chgrp ändern

Rechte allein reichen nicht immer. Sehr oft liegt ein Problem daran, dass die Datei dem falschen Benutzer oder der falschen Gruppe gehört. Dafür nutzt du chown und chgrp.

# Nur Besitzer ändern
sudo chown newuser datei.txt

# Besitzer und Gruppe zusammen ändern
sudo chown newuser:newuser script.sh

# Nur Gruppe ändern
sudo chgrp newuser projektordner

# Ergebnis prüfen
ls -l datei.txt script.sh
ls -ld projektordner

Der Doppelpunkt in user:gruppe ist wichtig. Links steht der Besitzer, rechts die Gruppe.

Verifizieren: Der Schritt ist erfolgreich, wenn in der Ausgabe von ls -l an der Stelle für Besitzer und Gruppe wirklich die neuen Namen stehen. Wenn weiterhin dein alter Benutzer erscheint, wurde der Befehl nicht mit ausreichenden Rechten ausgefährt oder der angegebene Benutzer existiert nicht.

Schritt 6: Benutzer und Gruppen anlegen und erweitern

Jetzt geht es um die eigentliche Benutzerverwaltung. Dabei ist wichtig zu verstehen: Ein Benutzer kann in mehreren Gruppen sein. Diese Gruppen entscheiden oft darüber, ob er zum Beispiel Docker, sudo oder ein gemeinsames Verzeichnis nutzen darf.

Auf Debian und Ubuntu ist adduser für Einsteiger meist angenehmer. Auf vielen Distributionen steht zusätzlich useradd zur Verfügung.

# Debian/Ubuntu: interaktiv und einsteigerfreundlich
sudo adduser newuser

# Gruppen anlegen
sudo groupadd projektteam

# Benutzer zu einer zusätzlichen Gruppe hinzufügen
sudo usermod -aG projektteam newuser

Wichtig: Bei usermod ist das -a entscheidend. Ohne dieses Flag überschreibst du bestehende Zusatzgruppen, statt sie zu ergänzen.

Für sudo-Rechte gilt im Alltag meist:

  • Debian/Ubuntu: Gruppe sudo
  • RHEL/Fedora/Rocky: Gruppe wheel
# Debian/Ubuntu
sudo usermod -aG sudo newuser

# RHEL/Fedora/Rocky
sudo usermod -aG wheel newuser

Verifizieren: Direkt nach usermod -aG ist die Änderung oft noch nicht in deiner aktuellen Sitzung aktiv. Der Benutzer muss sich in der Regel einmal neu anmelden. Wenn der Schritt erfolgreich war, taucht die neue Gruppe nach dem nächsten Login in id newuser oder groups newuser auf.

Schritt 7: Benutzer, UID, GID und Gruppenmitgliedschaften prüfen

Bevor du an Dateien, sudo oder Diensten weiterarbeitest, solltest du immer kontrollieren, wie Linux den Benutzer gerade wirklich sieht.

id
id newuser
groups newuser
getent passwd newuser
getent group projektteam

Wichtige Begriffe:

  • UID = numerische Benutzer-ID
  • GID = numerische Gruppen-ID
  • primöre Gruppe = die Hauptgruppe des Benutzers
  • sekundäre Gruppen = zusätzliche Gruppenmitgliedschaften

getent ist besonders nötzlich, weil es nicht nur lokale Dateien wie /etc/passwd berücksichtigt, sondern auch andere NSS-Quellen.

Verifizieren: Der Schritt ist erfolgreich, wenn id newuser und groups newuser die Gruppen anzeigen, die du in Schritt 6 gesetzt hast. Wenn eine Gruppe fehlt, war meist entweder der Gruppenname falsch oder der Benutzer hat sich seit der Änderung noch nicht neu angemeldet.

Schritt 8: sudo sicher nutzen und nur bei Bedarf sudoers anfassen

sudo bedeutet nicht "ich bin jetzt dauerhaft root", sondern "dieser einzelne Befehl wird mit erhöhten Rechten ausgeführt". Für den Alltag ist das genau der richtige Weg.

sudo apt update
sudo -l

Für die meisten Systeme reicht es, Benutzer über die passende Admin-Gruppe zu berechtigen:

  • sudo auf Debian/Ubuntu
  • wheel auf RHEL/Fedora/Rocky

Erst wenn du Sonderregeln brauchst, etwa einen ganz bestimmten Befehl ohne Passwort, arbeitest du mit visudo.

sudo visudo
sudo visudo -f /etc/sudoers.d/myteam

Beispiel für eine gezielte Regel:

%sudo ALL=(ALL:ALL) ALL
%deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

Wichtig: Bearbeite /etc/sudoers niemals direkt mit nano oder vim, wenn du die Syntax nicht zusätzlich prüfen lässt. Ein Fehler an dieser Stelle kann sudo unbrauchbar machen.

Verifizieren: Mit sudo -l siehst du, welche sudo-Rechte der aktuell angemeldete Benutzer wirklich hat. Wenn ein Benutzer Mitglied der Gruppe sudo oder wheel ist, aber sudo -l trotzdem nicht funktioniert, ist meist die neue Gruppenmitgliedschaft in der aktuellen Sitzung noch nicht aktiv.

Schritt 9: Spezialbits einordnen, ohne sie unnötig zu verwenden

Neben den normalen Rechten gibt es drei Spezialbits. Du musst sie als Linux-Grundlage kennen, aber du solltest sie nicht leichtfertig einsetzen.

BitBeispielBedeutung
setuid4755Ein Programm läuft mit den Rechten des Besitzers
setgid2755Neue Dateien in einem Verzeichnis erben oft die Gruppe des Verzeichnisses
Sticky Bit1777In gemeinsam beschreibbaren Verzeichnissen darf nicht jeder fremde Dateien löschen
ls -ld /tmp
ls -l /usr/bin/sudo

Typische Beispiele sind /tmp mit Sticky Bit und /usr/bin/sudo mit setuid. Eigene Experimente mit setuid solltest du nur dann machen, wenn du genau weißt, warum du das brauchst.

Verifizieren: Bei /tmp solltest du am Ende typischerweise ein t sehen, also etwa drwxrwxrwt. Bei Programmen mit setuid erscheint häufig ein s anstelle des normalen x im Benutzer-Block.

Troubleshooting

  • Problem: Ich habe Rechte gesetzt, aber komme trotzdem nicht in ein Verzeichnis. Meist fehlt auf dem Verzeichnis das Execute-Bit. Prüfe mit ls -ld verzeichnis, ob dort ein x gesetzt ist.
  • Problem: Nach usermod -G sind alte Gruppen verschwunden. Dann wurde -a vergessen. Verwende für Ergänzungen immer usermod -aG gruppe benutzer.
  • Problem: sudo funktioniert nicht, obwohl der Benutzer in der richtigen Gruppe ist. Oft ist die aktuelle Sitzung noch alt. Neu anmelden und danach id oder sudo -l prüfen.
  • Problem: Ein Webserver oder Dienst kann Dateien nicht lesen. Prüfe immer in dieser Reihenfolge: Besitzer, Gruppe, Dateirechte, Verzeichnisrechte der übergeordneten Ordner.
  • Problem: Eine Datei ist mit 644 gesetzt, ein Skript startet aber nicht. Für ausfühhrbare Skripte braucht der Besitzer oder der jeweilige Benutzer ein Execute-Bit, häufig also 755 oder gezielt u+x.
  • Problem: Ich habe rekursiv Rechte gesetzt und jetzt geht etwas kaputt. Dann wurden wahrscheinlich Dateien und Verzeichnisse nicht getrennt behandelt. Prüfe, ob Verzeichnisse noch ein Execute-Bit haben.

Häufige Fragen

Wann nehme ich 644 und wann 755?

644 ist typisch für normale Dateien, die gelesen, aber nicht ausgefährt werden sollen. 755 ist typisch für ausfühhrbare Skripte und viele Verzeichnisse. Verzeichnisse brauchen oft das Execute-Bit, damit man sie betreten kann.

Warum ist 777 fast nie eine gute Idee?

Weil damit jeder lesen, schreiben und ausfühhren darf. Das ist fast immer zu offen. Wenn du bei Linux-Rechten nicht weiterweißt, ist 777 keine saubere Lösung, sondern meist nur ein Zeichen dafür, dass Besitzer, Gruppe oder Verzeichnisstruktur noch nicht richtig verstanden sind.

Was ist der Unterschied zwischen primörer und sekundärer Gruppe?

Die primöre Gruppe ist die Hauptgruppe des Benutzers. Sekundäre Gruppen sind zusätzliche Mitgliedschaften, die weitere Berechtigungen geben. Mit id benutzername siehst du beides zusammen.

Warum soll ich sudoers nur mit visudo bearbeiten?

Weil visudo die Syntax prüft und die Datei sperrt. Ein Fehler in /etc/sudoers kann dazu führen, dass sudo nicht mehr funktioniert.

Warum funktioniert eine neue Gruppenmitgliedschaft nicht sofort?

Weil die aktuelle Sitzung die alten Gruppeninformationen behalten kann. Nach einer neuen Anmeldung gelten die neuen Gruppen in der Regel korrekt.

Fazit

Wenn du Linux-Benutzer, Gruppen und Rechte einmal wirklich verstehst, werden viele andere Themen deutlich einfacher. Du erkennst dann schneller, ob ein Problem an einer fehlenden Datei-Berechtigung, einer falschen Gruppe, einem ungeeigneten Besitzer oder an fehlenden sudo-Rechten liegt. Für den Alltag reichen dir oft schon ein sauber gelesener ls -l-Block, die Standardwerte 644, 755, 600 und 700 sowie die sichere Regel: erst prüfen, dann ändern, danach direkt verifizieren.

Als nächster passender Baustein eignet sich unsere Anleitung zur SSH-Key-Authentifizierung, weil dort Rechte auf ~/.ssh und authorized_keys sofort praktisch wichtig werden. Danach passen je nach Ziel zum Beispiel systemd-Services, Cron oder die Anleitung zum Absichern eines Linux-Servers.

Weiterführende Anleitungen und Quellen

Quellen: chmod(1) – man7.org, chown(1) – man7.org, id(1) – man7.org, sudoers(5) – man7.org, adduser(8) – Ubuntu Manpages.