Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Sicherheit Verwaltung

Linux Benutzer, Gruppen und Berechtigungen: Ein praktischer Onboarding-Workflow

The Monday-Morning Access Request

Montagmorgen tritt ein neues Teamkollege Ihrem Projekt bei und benötigt heute Zugriff auf den gemeinsamen Entwicklungsarbeitsbereich auf Ihrem Ubuntu VPS. Er sollte sich anmelden, das Team-Verzeichnis öffnen und normale Arbeit leisten können, ohne bei jeder kleinen Aufgabe auf jemand anderen zu warten. Er sollte keinen Root-Zugriff erhalten. Er sollte auch aus dem eingeschränkten release-secret-Bereich herausbleiben.

Administrator managing a secure server environment

Hier beginnen Linux-Benutzer, -Gruppen und -Berechtigungen, nicht mehr wie drei separate Lehrbuchthemen zu wirken, sondern wie ein praktisches System. Vielleicht lebt der Server auf einem AlexHost VPS, vielleicht lebt er woanders, aber die Zugriffsfrage ist überall gleich: Wie geben Sie nützlichen Zugriff, ohne vollständige Kontrolle zu geben?

Diese Anleitung folgt dieser einen Onboarding-Anfrage von Anfang bis Ende, sodass jeder Befehl einen klaren Job und Platz in der Geschichte hat. Wenn Begriffe wie Benutzer, Gruppe und Berechtigung für sich allein jemals verschwommen waren, ist dies der einfachste Weg, um sie zusammenzubringen.

Workflow:
user account → group membership → ownership alignment → permissions → verification

Ein mentales Modell vor allen Befehlen

Behalte vor allen Befehlen eine Analogie im Kopf: Stelle dir den Server wie ein Bürogebäude vor. Ein Benutzer ist der benannte Ausweis für eine Person. Eine Gruppe ist die Abteilung, zu der sie gehört. Berechtigungen sind die Türregeln für Räume und Schränke. Linux-Zugriff wird viel einfacher, wenn du es auf diese Weise liest, anstatt isolierte Befehle auswendig zu lernen.

Die drei Kernfragen sind einfach:

  • Ein Benutzer antwortet: „Wer ist das?”
  • Eine Gruppe antwortet: „Welchem gemeinsamen Team gehören sie an?”
  • Berechtigungen antworten: „Was können sie hier tun?”

Das ist auch das Herzstück des Prinzips der geringsten Berechtigung: Gib jemandem genau so viel Zugriff, wie er für die Arbeit braucht, und nicht mehr. Berechtigungen allein lösen das Problem nie vollständig, denn die richtige Regel auf der falschen Identität oder dem falschen Team führt immer noch zu dem falschen Ergebnis.

Person looking up definitions in an illustrated reference book

Die gleiche Logik erscheint auf jeder Datei und jedem Verzeichnis. Linux prüft zunächst, ob du der Eigentümer bist, ob du der Gruppe des Pfads entsprichst, oder ob du in others fällst — was bedeutet, dass jeder andere auf der Maschine. Erst dann wendet es die relevante Regel an. Deshalb kann sich derselbe Pfad für verschiedene Benutzer unterschiedlich verhalten.

Die kompakte Übersetzungstabelle unten reicht für den Rest dieses Artikels:

Linux-BegriffBedeutung in einfachem EnglischFrage, die es beantwortet
👤 userEin benanntes Konto für eine PersonWer ist das?
👥 groupEine gemeinsame TeamzugehörigkeitIn welchem Team sind sie?
🔑 ownerDer Benutzer, der einer Datei oder einem Verzeichnis zugeordnet istWem ist dieser Pfad zuerst zugewiesen?
📁 group (auf einem Pfad)Das Team, das diesem Pfad zugeordnet istWelches Team erhält die gemeinsame Regel?
🌐 othersJeder andere auf der MaschineWas können alle anderen tun?

📝 Hinweis: Die folgenden Befehle verwenden Ubuntu-freundliche Beispiele, aber das mentale Modell selbst gilt allgemein für Linux.

Von dort aus wird der erste Schritt offensichtlich: Bevor Maya etwas mit dem Team teilen kann, muss das System wissen, dass sie als ihre eigene Person existiert.

Schritt 1: Die Person im System erstellen

Ein Linux-Benutzerkonto ist nicht nur ein Label in einer Liste. Es gibt Maya eine Login-Identität, ein Home-Verzeichnis und einen separaten Arbeitskontext von allen anderen auf dem Server. Diese Trennung ist das, was Rechenschaftspflicht möglich macht. Wenn sich etwas ändert, können Sie sehen, wer es geändert hat. Wenn der Zugriff eng begrenzt bleiben muss, können Sie ihn auf ein echtes Konto beschränken, anstatt einen gemeinsamen mysteriösen Login zu verwenden.

Unter Ubuntu ist die benutzerfreundliche Methode zum Erstellen dieses Kontos:

sudo adduser maya

Ubuntu führt Sie durch die normale Einrichtung und erstellt normalerweise gleichzeitig /home/maya. Sie können auch useradd in Skripten oder in der Low-Level-Dokumentation sehen. Auf Debian/Ubuntu-Systemen ist adduser normalerweise die benutzerfreundlichere Wahl für ein normales Benutzerkonto.

Creating Maya's user account with adduser

Das ist auch der Grund, warum gemeinsame Konten eine so schlechte Gewohnheit sind. Wenn mehrere Personen sich alle als derselbe Benutzer anmelden – oder noch schlimmer, „einfach root verwenden” – verlieren Sie sofort die Nachverfolgbarkeit, und jede spätere Berechtigungsentscheidung wird schlampiger. Ein Benutzerkonto beantwortet, wer Maya ist. Es beantwortet noch nicht, welchen gemeinsamen Projektbereich sie nutzen kann.

Schritt 2: Sie in das richtige Team aufnehmen

Jetzt existiert Maya, hat aber noch keine Beziehung zum gemeinsamen Arbeitsbereich. Hier werden Gruppen nützlich. Eine primäre Gruppe folgt dem Konto standardmäßig. Zusätzliche Gruppen sind die zusätzlichen Teams, die Sie einem Benutzer zuordnen, damit der gemeinsame Zugriff sauber über mehrere Personen und mehrere Projekte skaliert.

Wenn Ihre Projektgruppe noch nicht existiert, erstellen Sie sie zuerst. Fügen Sie Maya dann dieser Gruppe hinzu, anstatt ihre bestehenden zusätzlichen Mitgliedschaften zu ersetzen.

⚠️ Warnung: usermod -G devteam maya ohne -a kann Mayas bestehende zusätzliche Gruppen ersetzen. Das Flag -a bedeutet „append” (anhängen), und es ist der Teil, der dies sicher macht.

Verwenden Sie die folgenden Befehle, um die Gruppe zu erstellen und zu überprüfen, ob Maya Teil davon ist:

sudo groupadd devteam
sudo usermod -aG devteam maya
id maya

Wenn devteam bereits existiert, überspringen Sie die groupadd-Zeile. In der id-Ausgabe sollten Sie devteam unter Mayas Gruppen aufgelistet sehen:

Adding Maya to devteam and verifying her group membership

Diese Ausgabe beweist, dass die Teamzugehörigkeit vorhanden ist. Es beweist noch nicht, dass Maya den Arbeitsbereich nutzen kann. Die Zugehörigkeit zu devteam bewirkt immer noch nichts, wenn das Verzeichnis selbst so Eigentümer und gruppiert ist, dass dieses Team ignoriert wird.

Schritt 3: Eigentümerschaft dem Workspace zuordnen

Dies ist das fehlende Glied hinter vieler Anfängerfrustrationen. Die nächste Frage betrifft den Workspace selbst: Wer besitzt ihn, und welche Gruppe ist damit verbunden? Bis das abgestimmt ist, hat Mayas korrekte Teamzugehörigkeit nirgendwo sinnvolles zu greifen.

Verwenden Sie für diese Anleitung einen gemeinsamen Pfad und einen eingeschränkten Pfad. Der gemeinsame Teambereich wird /srv/devworkspace sein. Der private Bereich wird /srv/release-secrets sein, mit einer Beispieldatei darin. Erstellen Sie zunächst beide Pfade:

sudo mkdir -p /srv/devworkspace /srv/release-secrets
sudo touch /srv/release-secrets/deploy-key.txt

Creating the shared workspace and restricted directory

Überprüfen Sie anschließend, wie diese Pfade derzeit aussehen:

ls -ld /srv/devworkspace /srv/release-secrets
ls -l /srv/release-secrets/deploy-key.txt

Inspecting the initial ownership and permissions of both paths

Das -d ist hier wichtig, da es ls anweist, das Verzeichnis selbst zu beschreiben, anstatt seinen Inhalt aufzulisten. In der langen Auflistung beginnen Sie mit drei Teilen. Schauen Sie zunächst auf die Berechtigungszeichenkette links. Überprüfen Sie dann den Eigentümer und die Gruppe. Wenn beide Pfade immer noch root root anzeigen, hat Mayas neue devteam-Zugehörigkeit noch nichts Sinnvolles zum Verbinden.

Wenn Sie nur die Gruppe ändern müssten, würde chgrp devteam /srv/devworkspace das tun. Hier ist chown owner:group klarer, da es das vollständige Ziel in einer Zeile setzt. Der gemeinsame Workspace sollte root:devteam gehören, während der eingeschränkte Pfad root:root bleiben sollte:

sudo chown root:devteam /srv/devworkspace
sudo chown root:root /srv/release-secrets /srv/release-secrets/deploy-key.txt

Nach dieser Eigentümerabstimmung sollten die wichtigen Teile der Auflistung wie folgt aussehen:

drwxr-xr-x  root devteam  /srv/devworkspace
drwxr-xr-x  root root     /srv/release-secrets
-rw-r--r--  root root     /srv/release-secrets/deploy-key.txt

permissions  owner  group

💡 Tipp: Halten Sie eingeschränkte Geheimnisse außerhalb des gruppengeschriebenen Workspace. Dies macht das Setup leicht nachvollziehbar und vermeidet unordentliche Verzeichnis-Schreib-Grenzfälle, die in einem Anfänger-Onboarding-Ablauf nicht hilfreich sind.

An diesem Punkt zeigt die Eigentümerschaft Linux, wessen Bereich jeder Pfad zugeordnet ist. Der letzte Schritt besteht darin, zu definieren, was dieser Eigentümer, diese Gruppe und alle anderen dort tatsächlich tun können.

Schritt 4: Berechtigungen festlegen, die zum Job passen

Mit ausgerichteter Eigentümerschaft können Sie nun die tatsächliche Regel für jeden Pfad festlegen: wer ihn lesen, ändern oder betreten darf. Denken Sie zuerst an den Job, dann an die Zahlen. Sie versuchen nicht, das ganze Berechtigungsuniversum auswendig zu lernen; Sie drücken eine praktische Regel für einen gemeinsamen Arbeitsbereich und einen eingeschränkten geheimen Bereich aus.

Person presenting a rules document with a warning symbol

Die kleine Matrix unten ist die einzige, die die meisten Anfänger brauchen:

BerechtigungBei einer DateiBei einem Verzeichnis
rDateiinhalte lesenNamen darin auflisten
wDateiinhalte ändernEinträge darin erstellen, umbenennen oder löschen
xDatei als Programm oder Skript ausführenVerzeichnis betreten/durchqueren

Die Verzeichniszeile ist die Falle. Bei einem Verzeichnis bedeutet x nicht „den Ordner ausführen”. Es bedeutet, dass Sie diesen Pfad betreten oder ihn durchqueren können, um zu etwas Tieferem zu gelangen. Deshalb kann eine Datei theoretisch lesbar aussehen und in der Praxis trotzdem fehlschlagen, wenn Sie den Verzeichnispfad, der zu ihr führt, nicht durchqueren können.

Wenden Sie nun die Regeln an, die zu dieser Onboarding-Geschichte passen. Der Team-Arbeitsbereich sollte von root und devteam nutzbar sein, aber für alle anderen geschlossen. Das geheime Verzeichnis sollte nur root gehören, und die geheime Datei darin sollte nur von root lesbar sein:

sudo chmod 770 /srv/devworkspace
sudo chmod 700 /srv/release-secrets
sudo chmod 600 /srv/release-secrets/deploy-key.txt

Diese Zahlen sind leichter zu verstehen, als sie zunächst aussehen, wenn Sie sie an den Job gebunden halten. 770 auf /srv/devworkspace bedeutet, dass root vollen Zugriff hat und devteam denselben gemeinsamen Zugriff erhält. Alle anderen bekommen dort nichts. 700 auf /srv/release-secrets bedeutet, dass nur root dieses Verzeichnis betreten kann. 600 auf deploy-key.txt bedeutet, dass nur root die Datei lesen oder ändern kann. Der wichtige Teil ist nicht die Arithmetik. Es ist, dass jeder Modus eine Entscheidung widerspiegelt, die Sie bereits über diesen Pfad getroffen haben.

drwxrwx---  root devteam  /srv/devworkspace
drwx------  root root     /srv/release-secrets
-rw-------  root root     /srv/release-secrets/deploy-key.txt

⚠️ Warnung: chmod 777 ist keine echte Lösung. Es bedeutet normalerweise, dass die Eigentümerschaft oder das Pfad-Design falsch ist, also sprüht jemand weit offene Berechtigungen auf den Fehler, anstatt das tatsächliche Zugriffdesign zu beheben.

Eine fortgeschrittene Anmerkung, absichtlich kurz gehalten: In beschäftigteren gemeinsamen Verzeichnissen verwenden Administratoren manchmal das Verzeichnis-setgid-Verhalten, damit neu erstellte Dateien automatisch die Team-Gruppe erben. Das ist später nützlich, gehört aber in einen Folgeartikel. Für diesen Workflow reichen einfache Benutzer, Gruppen, Eigentümerschaft und grundlegende rwx-Regeln aus.

Schritt 5: Zugriff und Grenzen überprüfen

Konfiguration ist nur die halbe Arbeit. Gutes Linux-Onboarding testet auch die Grenze. Die Erfolgsbedingung ist nicht nur „Maya kann etwas tun.” Sie lautet „Maya kann die beabsichtigte Arbeit verrichten und kann dennoch nicht in den eingeschränkten Pfad eindringen.”

Starten Sie einen neuen Login-Kontext für Maya und testen Sie dann eine zulässige Aktion und eine verweigerte Aktion:

su - maya
cd /srv/devworkspace
touch first-day-check.txt
ls -l /srv/devworkspace

Maya entering the shared workspace and creating a test file

Testen Sie dann die Grenze:

cd /srv/release-secrets
cat /srv/release-secrets/deploy-key.txt

Der Workspace-Test sollte funktionieren. Maya sollte in der Lage sein, /srv/devworkspace zu betreten und dort eine einfache Datei zu erstellen. Der Grenztest sollte mit einem Berechtigungsfehler fehlschlagen, und dieser Fehler ist das Erfolgssignal. Least Privilege soll Grenzen haben.

💡 Tipp: Wenn Maya /srv/devworkspace immer noch nicht verwenden kann, obwohl die Befehle korrekt aussehen, öffnen Sie eine neue Login-Sitzung und testen Sie erneut. Neue Mitgliedschaften in Zusatzgruppen werden in älteren Shells nicht immer konsistent angezeigt.

Dies ist die ruhige Art, das Onboarding zu überprüfen: Bestätigen Sie den erfolgreichen Pfad und bestätigen Sie dann die Grenze. Sobald Sie beides tun, wird der Workflow von der Theorie zu etwas, dem Sie auch auf dem nächsten Server vertrauen können.

Häufige Fehler, die das Modell zerstören

Die meiste Linux-Berechtigungsverwirrung ist nicht, dass Linux mysteriös ist. Sie kommt normalerweise aus demselben kleinen Satz von Kategoriefehler. Manchmal ist der Benutzer im falschen Team. Manchmal ist die Pfadeigentümerschaft falsch. Manchmal ist das eigentliche Problem eine falsche Annahme darüber, was x bedeutet, oder eine Berechtigungsabkürzung, die anstelle eines ordnungsgemäßen Designs verwendet wird.

Facts and myths shown side by side with check and rejection symbols

Die folgende Tabelle ist eine praktische Möglichkeit, diesen Nebel zu debuggen:

MythosKorrektur
“Maya ist in devteam, also sollte der Zugriff bereits funktionieren.”Teamzugehörigkeit ist nur relevant, wenn der Pfadeigentümer/die Gruppe und die Berechtigungen diesem Teammodell entsprechen.
“usermod -G ist allein ausreichend.”Ohne -a kann es bestehende zusätzliche Gruppen ersetzen, anstatt eine weitere hinzuzufügen.
“Neue Teamzugehörigkeit gilt sofort überall.”Bestehende Sitzungen benötigen möglicherweise eine neue Anmeldung, bevor die Änderung konsistent angezeigt wird.
“Verzeichnis x ist dasselbe wie Datei x.”In einem Verzeichnis bedeutet x den Pfad betreten/durchlaufen, nicht ein Programm ausführen.
“chmod 777 behebt Berechtigungsprobleme.”Es verbirgt das eigentliche Eigentums- oder Pfaddesign-Problem, indem es jedem breiten Zugriff gewährt.
“Wenn das lästig ist, geben Sie einfach Admin-Rechte.”sudo oder root umgeht das Modell, anstatt es zu beheben, was das Prinzip der minimalen Berechtigung zunichte macht.

Die meisten Berechtigungsprobleme entstehen durch das Überspringen einer Ebene und zu frühes Greifen zu chmod. Sobald Sie wissen, ob das Problem Identität, Teamzugehörigkeit, Eigentümerschaft oder die Pfadregel ist, wird die Lösung viel offensichtlicher.

The Practical Bottom Line

Linux-Zugriffskontrolle wird viel einfacher, wenn Sie systematisch vorgehen, anstatt Benutzer, Gruppen und Berechtigungen wie separate Themen zu behandeln. In diesem Beispiel bekam Maya genau das, was sie brauchte. Sie hat einen echten Login und Team-Zugriff auf den gemeinsamen Arbeitsbereich. Sie hat keinen Zugriff auf den release-secret-Pfad.

Person standing beside a completed practical checklist

Verwenden Sie diese Checkliste auf jedem Ubuntu VPS oder kleinen gehosteten Linux-Server:

  1. Erstellen Sie die Identität.
  2. Weisen Sie das gemeinsame Team zu.
  3. Richten Sie den Pfadeigentümer und die Gruppe aus.
  4. Legen Sie die Berechtigung für diese Aufgabe fest.
  5. Testen Sie sowohl Zugriff als auch Grenzen.

Das ist die wiederverwendbare Checkliste: Identität → Team → Regel, mit Pfadausrichtung in der Mitte, damit die Regel tatsächlich einen korrekten Ort zum Anwenden hat. Wenn Sie als Nächstes tiefer einsteigen möchten, sind natürliche Fortsetzungen SSH-Zugriff und sudo. Muster für gemeinsame Verzeichnisse und umfassendere Linux-Benutzer-/Gruppenverwaltung bauen auf der gleichen Grundlage auf. Die Kernlogik ändert sich nicht; Sie wenden sie nur auf spezifischere Situationen an.