- Lernen
- Informatik & Informationswissenschaften
- IT, Netzwerke & Cloud
- Linux – Befehlszeile, Shellskripte und Systemverwaltung
- Linux-Benutzer und Zugriffsrechte
Linux: Benutzer, Gruppen und Zugriffsrechte
sudo aus. Lege Benutzer und Gruppen an und verwalte sie, lies und ändere Eigentümer, Gruppenzuordnung und Zugriffsrechte mit chown und chmod, lege sinnvolle Standardrechte mit umask fest und verwende SUID, SGID und das Sticky-Bit. Finde zum Abschluss die Ursache eines Fehlers „Permission denied“ und behebe ihn mit der kleinstmöglichen sicheren Änderung.AnfängerEinheit 5 von 7 in Kurs: Linux – Befehlszeile, Shellskripte und Systemverwaltung
Was du lernst
- Erkläre, wie Linux jeden Benutzer und jede Gruppe anhand einer Nummer identifiziert, unterscheide Root-Konto, reguläre Benutzerkonten und Systemkonten und lies die Dateien, in denen Konten, Gruppen und Passwortdaten gespeichert sind.
- Root-Konto, reguläre Benutzerkonten und Systemkonten unterscheidenBeschreibe die drei Kontoarten, die Benutzer-ID zur Identifizierung jedes Kontos und die Befehle, die zeigen, wer du bist und wer angemeldet ist.
- Primäre und zusätzliche Gruppen erklärenErkläre, wie Gruppen mehreren Benutzern denselben Zugriff geben, worin sich die primäre Gruppe eines Benutzers von zusätzlichen Gruppen unterscheidet und welche Gruppen Sonderrechte verleihen.
- Die Dateien passwd, shadow und group lesenLies jedes Feld von /etc/passwd, /etc/shadow und /etc/group, erkläre, warum Passworthashes getrennt aufbewahrt werden, und ermittle Passwortdaten aus der shadow-Datei.
- Root-Konto, reguläre Benutzerkonten und Systemkonten unterscheiden
- Arbeite als regulärer Benutzer, erhöhe Rechte mit sudo oder su nur für die Befehle, die sie benötigen, und gib anderen Benutzern genau die administrativen Rechte, die sie brauchen.
- Mit sudo und su als root arbeitenVergleiche su und sudo, führe einzelne Befehle mit erhöhten Rechten aus und vermeide typische sudo-Fallen wie Dateien im Eigentum von root und fehlschlagende Umleitungen.
- sudo-Rechte über die sudoers-Richtlinie vergebenLies und schreibe sudoers-Regeln mit visudo, mache einen Benutzer über die richtige Gruppe zum Administrator und beschränke andere Benutzer auf die wenigen Befehle, die sie benötigen.
- Mit sudo und su als root arbeiten
- Füge Benutzer und Gruppen über die Befehlszeile hinzu, lege Passwörter fest und verwalte sie, ändere und entferne Konten und verwalte Gruppenmitgliedschaften.
- Benutzerkonten mit useradd und adduser anlegenLege reguläre Benutzerkonten und Systemkonten mit useradd oder adduser an, kenne die jeweils verwendeten Dateien und Standardwerte und prüfe das Ergebnis.
- Passwörter verwalten und Benutzerkonten ändern oder löschenLege Passwörter fest, sperre sie und lass sie ablaufen, steuere das Passwortalter, ändere Kontodaten mit usermod und entferne Konten, ohne Probleme zu hinterlassen.
- Gruppen anlegen und Mitgliedschaften verwaltenLege Gruppen an, benenne sie um und lösche sie, füge Mitglieder hinzu und entferne sie und richte ein Verzeichnis ein, das ein Team gemeinsam nutzen kann.
- Benutzerkonten mit useradd und adduser anlegen
- Lies Eigentümer, Gruppe und Rechtebits einer beliebigen Datei oder eines Verzeichnisses ab, erkläre die Wirkung jedes Rechts und ändere sie mit chmod, chown und chgrp.
- Eigentümer, Gruppenzuordnung und Zugriffsrechte in einer Auflistung ablesenLies jeden Teil einer ls -l-Zeile und ermittle, welche Berechtigungsklasse für einen bestimmten Benutzer gilt.
- Erklären, was Lese-, Schreib- und Ausführungsrechte erlaubenErkläre, was r, w und x bei einer regulären Datei und bei einem Verzeichnis erlauben, und sage voraus, ob ein Vorgang wie Lesen, Ausführen, Erstellen oder Löschen gelingt.
- Zugriffsrechte mit chmod ändernLege Zugriffsrechte mit symbolischen und oktalen Modi fest und ändere sie, rechne zwischen beiden Formen um und ändere ganze Verzeichnisbäume sicher.
- Eigentümer und Gruppenzuordnung mit chown und chgrp ändernÄndere den Eigentümer und die Gruppe von Dateien und Verzeichnisbäumen, wisse, wer das tun darf, und sage voraus, wem neu erstellte, kopierte und verschobene Dateien gehören.
- Eigentümer, Gruppenzuordnung und Zugriffsrechte in einer Auflistung ablesen
- Wähle die Rechte, die neue Dateien erhalten, verwende SUID, SGID und das Sticky-Bit dort, wo sie helfen, und finde die Ursache eines Berechtigungsfehlers und behebe ihn mit der kleinstmöglichen sicheren Änderung.
- Standardrechte mit umask festlegenErmittle anhand der umask die Rechte neuer Dateien und Verzeichnisse und lege eine umask für eine Sitzung oder dauerhaft fest.
- SUID, SGID und das Sticky-Bit verwendenErkläre die drei Sonderrechte, erkenne sie in Auflistungen, setze sie mit chmod und verwende sie sicher für Programme, Teamverzeichnisse und gemeinsam genutzte Verzeichnisse.
- Berechtigungsprobleme diagnostizieren und das Prinzip der geringsten Rechte anwendenVerfolge einen Fehler „Permission denied“ Schritt für Schritt bis zu seiner Ursache, wähle die kleinstmögliche sichere Lösung und halte den Zugriff auf sensible Dateien und Administratorrechte streng begrenzt.
- Standardrechte mit umask festlegen
Linux-Benutzer und Zugriffsrechte einfach erklärt
1Benutzer, Gruppen und Kontodateien verstehen
Linux weist jeder Person und jedem laufenden Dienst eine Identität zu. Diese Identität verbindet eine Benutzer-ID und Gruppenmitgliedschaften mit den Dateien, auf die der Prozess zugreifen darf. Wenn du deine aktuelle Identität, die aktiven Anmeldesitzungen und die Kontoeinträge liest, kannst du Zugriffsentscheidungen leichter erklären. Die öffentliche Kontodatei beschreibt die Identität eines Kontos, während geschützte Passworteinträge die Passwortanmeldung und das Passwortalter steuern.
1.1 Root-Konto, reguläre Benutzerkonten und Systemkonten unterscheiden
Jeder Befehl läuft mit einer Identität. Anhand dieser Identität entscheidet Linux, welche Dateien der Befehl öffnen und welche Einstellungen er ändern darf. Ein Benutzerkonto kann für eine Person oder einen im Hintergrund laufenden Dienst stehen.
Die Nummer hinter dem Namen
Der Kernel identifiziert ein Konto anhand seiner Benutzer-ID (UID). Namen wie alice machen die Nummer leichter erkennbar, aber die Rechte richten sich nach der Nummer. Das root-Konto hat die UID 0 und sein Home-Verzeichnis ist /root. Ein Konto mit einem anderen Namen und UID 0 hat dieselben Superuser-Rechte.
Ein reguläres Benutzerkonto ist das Alltagskonto einer Person. Auf den meisten Distributionen beginnen reguläre UIDs bei 1000; UID_MIN in /etc/login.defs legt diese Schranke fest. Ein regulärer Benutzer kann eigene Dateien und alle anderen Dateien ändern, die die Zugriffsrechte erlauben. Zum Ändern geschützter Systemeinstellungen sind erhöhte Rechte nötig.
Ein Systemkonto gibt einem Dienst eine eigene eingeschränkte Identität. Die meisten haben UIDs unter 1000 und eine Shell wie /usr/sbin/nologin. Das Sonderkonto nobody hat häufig UID 65534, sodass der Nummernbereich allein nicht jedes Dienstkonto erkennen lässt. Debian und Ubuntu verwenden www-data für Webdienste; ein SSH-Dienst kann sshd verwenden.
Deine aktuelle Identität ablesen
Führe whoami für deinen Benutzernamen oder id für die Nummern und Gruppen aus. Zum Beispiel:
uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo),1005(developers)
Lies die Ausgabe in drei Teilen. Alices UID ist 1001. Ihre primäre Gruppe ist alice, GID 1001. Ihre Gruppenliste enthält auch sudo und developers. Sie ist eine reguläre Benutzerin, nicht root: Die Gruppe sudo kann Befehle mit erhöhten Rechten erlauben, aber ihre aktuelle Shell läuft weiterhin als Alice.
Viele Shells zeigen # für root und $ für einen regulären Benutzer an. Eine Eingabeaufforderung kann angepasst werden, prüfe daher id, wenn die Identität wichtig ist. Das erste bei der Installation angelegte Konto ist häufig ein reguläres Konto mit sudo-Zugriff, auch unter Ubuntu; durch das Anlegen als erstes Konto wird es nicht zu root.
Anmeldesitzungen prüfen
| Befehl | Was er zeigt |
|---|---|
who | Aktuelle Anmeldesitzungen, Terminals und Anmeldezeiten |
w | Aktuelle Sitzungen, Aktivität, Laufzeit und Systemlast |
last | Aufgezeichnete frühere Anmeldungen und Neustarts, die neuesten zuerst |
wtmpdb last | Anmeldeverlauf auf Systemen mit wtmpdb |
Diese Befehle beantworten eine andere Frage als whoami: Sie zeigen Sitzungen und nicht nur die Identität deiner Shell. Debian 13 ist eines der Systeme, die wtmpdb für ihren Verlauf verwenden.
Getrennte Identitäten unterstützen das Prinzip der geringsten Rechte, Zurechenbarkeit und Isolation. Ein Webdienst kann die Dateien lesen, die er bereitstellt, ohne Zugriff auf die privaten Dokumente jedes Benutzers zu erhalten. Protokolle können zeigen, welches Konto gehandelt hat. Wird der Dienst kompromittiert, beginnt der Angriff mit den Rechten dieses Dienstkontos. Root kann gewöhnliche Beschränkungen beim Lesen und Schreiben von Dateien umgehen, daher ist ein zweites Konto mit UID 0 ein ernstes Sicherheitsrisiko.
Wichtige Erkenntnisse
- Linux erfasst Benutzeridentitäten anhand der UID; UID 0 hat root-Rechte.
- Reguläre Konten dienen Menschen; Systemkonten geben Diensten eingeschränkte Identitäten.
idzeigt deine Identität und aktiven Gruppen; die Mitgliedschaft insudomacht deine Shell nicht zu root.whoundwzeigen aktuelle Sitzungen;lastoderwtmpdb lastzeigt den aufgezeichneten Verlauf.
1.2 Primäre und zusätzliche Gruppen erklären
Eine Datei mit einem Team zu teilen ist einfacher, wenn das Team eine Gruppe hat. Ordne die Datei dieser Gruppe zu, gib der Gruppe die benötigten Rechte und verwalte die Mitgliedschaft, wenn Personen hinzukommen oder das Team verlassen.
Eine primäre Gruppe, weitere Mitgliedschaften
Eine Gruppe hat einen Namen und eine numerische Gruppen-ID (GID). Jeder Benutzer hat eine primäre Gruppe, die als GID in /etc/passwd gespeichert ist. Eine neue Datei übernimmt normalerweise die primäre Gruppe des erstellenden Prozesses. Später lernst du mit einem SGID-Verzeichnis eine weitere Regel für die Gruppenzuordnung neuer Dateien kennen.
Benutzer können auch mehreren zusätzlichen Gruppen angehören. Diese Mitgliedschaften ergänzen die Gruppenidentitäten ihrer Prozesse; der Benutzer muss nicht jedes Mal die primäre Gruppe wechseln, wenn er die Datei eines anderen Teams öffnet. Sowohl primäre als auch zusätzliche Gruppen zählen, wenn Linux prüft, ob der Benutzer zur Gruppe einer Datei gehört.
Die meisten Distributionen erstellen für jeden regulären Benutzer eine private Benutzergruppe. Alice kann den Benutzernamen alice, UID 1001, die primäre Gruppe alice und GID 1001 haben. Benutzer- und Gruppenidentität bleiben getrennt, auch wenn Namen und Nummern übereinstimmen. Eine Datei, die Alices privater Gruppe zugeordnet ist, wird nicht mit dem ganzen Team geteilt.
Eine Mitgliedschaft untersuchen
Verwende groups für deine eigenen Gruppennamen. groups bob und id bob fragen Bobs Mitgliedschaften ab; id -Gn gibt die Gruppennamen des aktuellen Prozesses ohne Nummern aus. Eine Gruppenabfrage könnte Folgendes zeigen:
getent group developers
developers:x:1005:alice,bob
Die Gruppe heißt developers, ihre GID ist 1005 und Alice und Bob sind als zusätzliche Mitglieder aufgeführt. Ein Konto mit der primären GID 1005 gehört ebenfalls zur Gruppe, auch wenn sein Name in dieser letzten Liste fehlt. Um die vollständige Gruppenmitgliedschaft einer Person zu prüfen, verwende id mit ihrem Namen, statt dich allein auf diese Liste zu verlassen.
Die Rechte einer Gruppe anwenden
Angenommen, plan.txt gehört bob:developers und hat den Modus rw-r-----. Alice ist nicht Bob, gehört aber zu developers. Daher gilt für sie das mittlere Rechtetripel r--: Sie kann den Plan lesen, aber seinen Inhalt nicht ändern. Chen ist weder der Eigentümer noch gehört er zur Gruppe, daher gilt für ihn das letzte Tripel ---.
Die Änderung der einer Datei zugeordneten Gruppe schafft für sich genommen keine Rechte. Lautet das Gruppentripel ---, erhalten Mitglieder über diese Klasse weiterhin keinen Zugriff. Die Gruppenzuordnung bestimmt das Team; die Rechtebits legen fest, was das Team tun kann.
Gruppen mit weitreichenden Rechten erkennen
Einige Mitgliedschaften gewähren deutlich mehr als Zugriff auf ein Projektverzeichnis. Debian und Ubuntu berechtigen gewöhnlich die Gruppe sudo zu administrativen Befehlen; Fedora und Red Hat Enterprise Linux verwenden gewöhnlich wheel. Unter Debian und Ubuntu erlaubt adm den Zugriff auf viele Systemprotokolle. Die Gruppe docker steuert den Docker-Dienst und bietet praktisch Kontrolle auf root-Ebene.
Bevor du jemanden zu einer Gruppe hinzufügst, ermittle, worauf sie zugreifen kann. Eine Projektgruppe kann eine eng begrenzte Möglichkeit sein, Arbeit zu teilen, während eine administrative Gruppe die Kontrolle über den ganzen Rechner gewähren kann.
Wichtige Erkenntnisse
- Jeder Benutzer hat eine primäre Gruppe und kann mehreren zusätzlichen Gruppen angehören.
- Neue Dateien übernehmen normalerweise die primäre Gruppe des erstellenden Prozesses.
- Eine private Benutzergruppe enthält gewöhnlich nur den zugehörigen Benutzer.
- Prüfe alle Gruppen eines Benutzers mit
id username;/etc/groupmuss primäre Mitglieder nicht aufführen. - Gruppenzuordnung und Gruppenrechtebits wirken zusammen.
- Behandle Mitgliedschaften wie
sudo,wheelunddockerals Vergabe weitreichender Zugriffsrechte.
1.3 Die Dateien passwd, shadow und group lesen
Linux hält öffentliche Kontodaten von Passwortdaten getrennt. Wenn du die Reihenfolge der Felder liest, kannst du die Identität, die Anmeldung und die Passwortrichtlinie eines Kontos erklären, ohne die Dateien von Hand zu ändern.
Einen Kontoeintrag lesen
/etc/passwd hat sieben durch Doppelpunkte getrennte Felder:
name:password:UID:GID:comment:home:shell
alice:x:1001:1001:Alice Moreau:/home/alice:/bin/bash
Alices UID und primäre GID sind beide 1001. Der Kommentar, auch GECOS-Feld genannt, enthält ihren vollständigen Namen. Ihr Home-Verzeichnis ist /home/alice und ihre Login-Shell ist Bash. Das x verweist auf Passwortdaten in /etc/shadow; es bedeutet nicht, dass ihr Passwort leer ist.
Gewöhnliche Benutzer können /etc/passwd lesen, normalerweise mit Modus 644. Programme brauchen die öffentlichen Angaben, um gespeicherte UIDs in Namen aufzulösen. Da Passworthashes in einer getrennten geschützten Datei liegen, kann nicht jeder lokale Benutzer sie lesen.
Passwortdaten lesen
/etc/shadow hat neun Felder: Name, Passworthash, Tag der letzten Änderung, Mindestalter, Höchstalter, Warntage, Inaktivitätstage, Kontoablauftag und ein reserviertes Feld. Root kann die Datei lesen; manche Systeme gewähren auch der Gruppe shadow Zugriff.
Ein Passworthash ist ein Einwegergebnis, keine umkehrbare Verschlüsselung. Bei der Anmeldung wendet das System das gespeicherte Verfahren und den Salt auf das eingegebene Passwort an und vergleicht das Ergebnis mit dem gespeicherten Hash. Ein zufälliger Salt sorgt für unterschiedliche Hashes, selbst wenn zwei Benutzer dasselbe Passwort wählen. SHA-512-crypt-Einträge verwenden $6$salt$hash, optional mit einem Feld rounds=N; yescrypt verwendet $y$parameters$salt$hash.
Ein führendes ! sperrt das Passwort und behält den Hash bei. Ein Feld, das nur !, !! oder * enthält, hat kein verwendbares Passwort. Andere Anmeldeverfahren wie SSH-Schlüssel können bei gesperrtem Passwort weiterhin funktionieren.
Die Daten ermitteln
Betrachte diesen verkürzten Hash-Eintrag:
alice:$y$j9T$...:20514:0:90:7:::
Die Datumswerte zählen die Tage seit dem 1. Januar 1970, UTC. Tag 20514 ist der 2. März 2026. Ein Mindestalter von 0 erlaubt eine sofortige Passwortänderung; ein Höchstalter von 90 bedeutet den Ablauf am 31. Mai 2026. Die Warnfrist von sieben Tagen beginnt am 24. Mai. Leere Felder für Inaktivität und Kontoablauf legen keine dieser Beschränkungen fest. Der Wert 0 für die letzte Änderung erzwingt eine Änderung bei der nächsten Anmeldung; ein Höchstalter von 99999 entspricht praktisch einer sehr langen Passwortlaufzeit. Passwortablauf und Kontoablauf stehen in getrennten Feldern.
Gruppeneinträge sicher lesen
/etc/group verwendet name:password:GID:members. In developers:x:1005:alice,bob listet das letzte Feld zusätzliche Mitglieder auf. Primäre Mitglieder werden über die GID in ihren passwd-Einträgen gefunden. Das geschützte /etc/gshadow speichert Gruppenpasswörter und Daten zu Gruppenadministratoren.
Verwende getent passwd alice oder getent group developers für Abfragen. getent berücksichtigt neben lokalen Dateien auch konfigurierte Kontoquellen. cut -d: -f1,3 /etc/passwd zeigt lokale Namen und UIDs. Ändere Einträge mit Kontobefehlen wie usermod und passwd; ist eine direkte Bearbeitung unvermeidbar, sperren vipw und vigr die Dateien währenddessen.
Wichtige Erkenntnisse
/etc/passwdspeichert öffentliche Identitäts- und Anmeldedaten;xverweist auf/etc/shadow./etc/shadowspeichert Passworthashes, Passwortalter und Kontoablauf getrennt.- Ein Salt sorgt dafür, dass gleiche Passwörter unterschiedliche gespeicherte Hashes ergeben.
- Bei einem gesperrten Passwort können andere Anmeldeverfahren verfügbar bleiben.
- Shadow-Datumswerte zählen die Tage seit dem 1. Januar 1970, UTC.
/etc/grouplistet zusätzliche Mitglieder auf; die primäre Mitgliedschaft stammt aus/etc/passwd.- Verwende Kontoverwaltungsbefehle zum Ändern von Einträgen und
getentzum Nachschlagen.
2Administrative Befehle sicher ausführen
Administrative Befehle können das ganze System ändern, daher ist die Identität wichtig, unter der sie laufen. Sudo erlaubt einem berechtigten Benutzer, einen bestimmten Befehl mit erhöhten Rechten auszuführen, und protokolliert den Versuch; su öffnet die Shell eines anderen Benutzers. Eine zweckmäßige Richtlinie kann einem Team eine Wartungsaktion erlauben, ohne eine allgemeine root-Shell zu gewähren. Die Regel zu lesen, sicher zu bearbeiten und ihre tatsächliche Wirkung zu prüfen gehört zur Vergabe dieses Zugriffs.
2.1 Mit sudo und su als root arbeiten
Administrative Aufgaben brauchen mehr Zugriff als alltägliche Arbeiten. Lass deine gewöhnliche Shell unter deinem eigenen Konto laufen und erhöhe die Rechte für die Aktion, die sie benötigt. Dateien, die ein Befehl mit erhöhten Rechten erstellt, können root gehören, auch wenn sie in deinem Home-Verzeichnis liegen.
Zwischen sudo und su wählen
| Befehl | Was startet | Üblicherweise abgefragtes Passwort |
|---|---|---|
su | Eine Shell als root | Passwort von root |
su - bob | Eine Login-Shell als Bob | Passwort von Bob |
sudo command | Ein Befehl als root | Dein eigenes Passwort |
sudo -u postgres psql | Ein Befehl als postgres | Dein eigenes Passwort |
Eine Login-Shell lädt die Anmeldeumgebung des Zielbenutzers einschließlich Home-Verzeichnis und Startdateien. Verwende exit, um eine mit su gestartete Shell zu verlassen. sudo -i öffnet eine root-Login-Shell; sudo -s öffnet eine root-Shell. Das ist für eine Reihe zusammengehöriger administrativer Aufgaben nützlich, aber jeder Befehl in dieser Shell hat erhöhte Rechte, bis du sie verlässt.
Sudo prüft vor der Ausführung des Befehls seine Richtlinie und protokolliert den Versuch. Protokolle können im systemd-Journal, in /var/log/auth.log auf Systemen der Debian-Familie oder in /var/log/secure auf Systemen der Red-Hat-Familie landen. sudo -l zeigt die Befehle, die dein Konto ausführen darf. Die Erlaubnis zur Verwendung von sudo ergibt sich aus der Richtlinie, nicht aus der Kenntnis des Passworts einer anderen Person.
Die Authentifizierung verstehen
Standardmäßig fragt sudo nach dem Passwort des aufrufenden Benutzers, nicht nach dem von root. Die Richtlinie kann dieses Verhalten ändern. Der Authentifizierungszeitstempel der Upstream-Version von sudo gilt standardmäßig fünf Minuten; Distributionen können einen anderen Wert einstellen, etwa 15 Minuten. Der Zeitstempel gilt normalerweise innerhalb dieses Terminals. Führe sudo -k aus, um ihn nach Abschluss ungültig zu machen.
Ubuntu startet normalerweise ohne verwendbares root-Passwort und nimmt den Installationsbenutzer in sudo auf. Fedora und Systeme der Red-Hat-Familie verwenden gewöhnlich wheel. Bei einem abgelehnten Versuch kann gemeldet werden, dass der Benutzer nicht in der sudoers-Datei steht; der Versuch wird protokolliert.
Den Schreibvorgang unter sudo ausführen
Dieser Befehl schlägt fehl, wenn dein gewöhnliches Konto nicht in /etc/hosts schreiben darf:
sudo echo "192.0.2.10 test.local" >> /etc/hosts
Deine aktuelle Shell öffnet die Datei für >>, bevor sudo läuft. Nur echo erhält root-Rechte und echo ist nicht das Programm, das die Zieldatei öffnet. Übertrage die Schreibaufgabe einem Prozess mit erhöhten Rechten:
echo "192.0.2.10 test.local" | sudo tee -a /etc/hosts
Hier öffnet tee die geschützte Datei als root. Seine Option -a hängt an; ohne diese Option würde der Inhalt der Datei ersetzt. Für eine interaktive Bearbeitung führt sudoedit /etc/hosts, auch sudo -e /etc/hosts geschrieben, deinen Editor unter deinem Benutzerkonto aus und übernimmt die Aktualisierung der geschützten Datei.
Arbeit im Eigentum von root erkennen
Prüfe nach sudo mkdir ~/project das Ergebnis mit ls -ld ~/project. Das Verzeichnis liegt in deinem Home-Verzeichnis, wurde aber von root erstellt. Seine Eigentümerrechte gelten daher für root, während dein Konto möglicherweise nur Lese- und Ausführungsrechte hat. Stelle mit sudo chown alice: ~/project den vorgesehenen Eigentümer wieder her, wenn das Projekt Alice gehört. Der abschließende Doppelpunkt wählt auch Alices Anmeldegruppe. Anschließend können gewöhnliche Bearbeitungen und Dateierstellungen unter Alices Konto erfolgen.
Wichtige Erkenntnisse
sufragt normalerweise nach dem Passwort des Zielbenutzers; sudo fragt normalerweise nach deinem.- Prüfe mit
sudo -ldie erlaubten Befehle und mache mitsudo -kdie zwischengespeicherte Authentifizierung ungültig. - Die Shell-Umleitung erfolgt vor sudo; erhöhe die Rechte des Programms, das die geschützte Datei öffnet.
sudoeditlässt deinen eigenen Editor an einer Kopie der geschützten Datei arbeiten.- Ein Befehl mit erhöhten Rechten kann in deinem Home-Verzeichnis Dateien erstellen, die root gehören.
2.2 sudo-Rechte über die sudoers-Richtlinie vergeben
Eine sudo-Regel legt fest, wer eine Aktion auf welchem Host und unter welcher Identität ausführen darf. Erlaubst du einem Team eine administrative Aktion, kann das seinen Bedarf decken, ohne uneingeschränkte Kontrolle über den Rechner zu gewähren.
Die Teile einer Regel lesen
Das Grundmuster lautet who where = (as_whom) what. Zum Beispiel:
alice ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
Die erste Regel erlaubt Alice, jeden Befehl auf jedem Host als jeder Benutzer und jede Gruppe auszuführen. Die zweite gewährt der Gruppe sudo dieselben Rechte; % kennzeichnet einen Gruppennamen. Eine übliche Regel der Red-Hat-Familie ist %wheel ALL=(ALL) ALL.
Um Alice über eine bestehende Distributionsregel zur vollberechtigten Administratorin zu machen, führe unter Debian oder Ubuntu sudo usermod -aG sudo alice aus oder verwende unter Fedora und verwandten Systemen wheel. Alice muss sich neu anmelden, damit die Mitgliedschaft in ihrer Sitzung wirksam wird. Das -a ist wichtig: Ohne es ersetzt -G ihre anderen zusätzlichen Gruppen.
Die Richtlinie bearbeiten und prüfen
Die Hauptdatei ist /etc/sudoers; zusätzliche Regeln können in /etc/sudoers.d/ liegen. Verwende sudo visudo oder bearbeite gezielt eine Datei:
sudo visudo -f /etc/sudoers.d/webteam
visudo sperrt die Richtliniendatei während der Bearbeitung und prüft vor dem Speichern ihre Syntax. Eine fehlerhafte Richtlinie kann dazu führen, dass Administratoren sudo nicht mehr verwenden können. Nenne die Datei webteam, nicht webteam.conf: Beim Einbinden des Verzeichnisses überspringt sudo Namen, die einen Punkt enthalten oder auf ~ enden.
Dateien im eingebundenen Verzeichnis werden in der Reihenfolge ihrer Namen gelesen. Treffen mehrere Regeln zu, bestimmt die letzte passende Regel das Ergebnis; die am spezifischsten wirkende Regel gewinnt nicht unbedingt. Die Einbindung steht normalerweise gegen Ende der Hauptrichtlinie, sodass eine zusätzliche Datei eine früher geschriebene Regel beeinflussen kann.
Eine bestimmte Aktion erlauben
Ein Team, das einen Webdienst betreut, könnte Folgendes erhalten:
%webteam ALL=(root) /usr/bin/systemctl restart nginx
Ein Mitglied kann sudo systemctl restart nginx ausführen. Die Regel gibt den vollständigen Befehlspfad und seine Argumente an. Sie erlaubt weder systemctl stop nginx noch bash. Prüfe die wirksamen Rechte mit sudo -l; ein Administrator kann Bobs Richtlinie mit sudo -l -U bob prüfen.
Auch das erlaubte Programm ist wichtig. Eine root-Shell kann alles tun. Editoren und Pager können Shells starten und uneingeschränktes cp oder tee kann geschützte Konfigurationen überschreiben. Eine scheinbar kurze Befehlsliste kann daher volle Kontrolle gewähren.
Entscheiden, ob ein Passwort nötig ist
NOPASSWD: entfernt die Authentifizierungsabfrage für einen passenden Befehl:
backup ALL=(root) NOPASSWD: /usr/local/bin/backup.sh
Das kann eine automatisierte Aufgabe ermöglichen. Das Skript muss unter der Kontrolle von root stehen: Kann backup es überschreiben, kann das Konto seinen Inhalt durch einen beliebigen root-Befehl ersetzen. Begrenze die erlaubte Aktion und schütze zugleich das Skript.
Defaults-Zeilen ändern Richtlinieneinstellungen. Defaults timestamp_timeout=10 legt einen Authentifizierungszeitstempel von zehn Minuten fest; Defaults logfile=/var/log/sudo.log wählt eine zusätzliche Protokolldatei. Diese Einstellungen steuern das Verhalten von sudo, während Befehlsregeln die erlaubten Aktionen bestimmen.
Wichtige Erkenntnisse
- Eine sudoers-Regel legt fest, wer auf welchem Host unter welcher Zielidentität welchen Befehl ausführen darf.
- Bearbeite die Richtlinie mit
visudo, damit Sperrung und Syntaxprüfung die Datei schützen. - Ein genau angegebener Befehl mit Argumenten kann eine Aktion erlauben, ohne eine Shell zu erlauben.
- Schütze Skripte in
NOPASSWD-Regeln vor Änderungen durch das aufrufende Konto. - Namen mit einem Punkt werden in
/etc/sudoers.d/übersprungen. - Wenn mehrere Regeln zutreffen, ist ihre Reihenfolge wichtig.
3Benutzerkonten und Gruppen anlegen und verwalten
Zur Einrichtung eines Kontos gehört mehr als ein Anmeldename: Es braucht eine Benutzer-ID, Gruppen, ein Home-Verzeichnis, eine Shell und eine Authentifizierung. Diese Angaben ändern sich auch, wenn Personen andere Aufgaben übernehmen oder ausscheiden. Gruppenverwaltung erleichtert den Teamzugriff, aber laufende Sitzungen behalten die bereits geladenen Identitäten. Gehe das Anlegen, spätere Änderungen und das Entfernen durch und prüfe dabei sowohl die Kontoeinträge als auch die Dateien, die diesen Einträgen zugeordnet sind.
3.1 Benutzerkonten mit useradd und adduser anlegen
Beim Anlegen eines Kontos werden eine Identität, eine Anmeldeumgebung und häufig ein Home-Verzeichnis eingerichtet. Wenn du die Optionen ausdrücklich wählst, wird das Ergebnis über Distributionen hinweg vorhersehbar.
Ein reguläres Konto anlegen
Angenommen, die Gruppe developers existiert bereits. Lege Priyas Konto an und setze ihr Passwort mit zwei Befehlen:
sudo useradd -m -s /bin/bash -c "Priya Shah" -G developers priya
sudo passwd priya
-m erstellt /home/priya und kopiert die Startdateien aus /etc/skel. -s /bin/bash wählt Bash als Login-Shell und -c liefert den Kommentar. -G developers fügt eine zusätzliche Gruppenmitgliedschaft hinzu; mehrere Gruppennamen bilden eine kommagetrennte Liste ohne Leerzeichen. Das Konto erhält normalerweise auch eine private primäre Gruppe.
Der erste Befehl fügt Kontoeinträge zu /etc/passwd und /etc/shadow sowie bei Bedarf Gruppeneinträge zu /etc/group und /etc/gshadow hinzu. Das anfängliche Passwortfeld ist gesperrt, häufig mit ! oder !!. Das Konto existiert, bevor es ein verwendbares Passwort hat. passwd priya legt dieses Passwort fest; die Eingabeaufforderung hält das Passwort von der Befehlszeile fern.
Standardwerte der Distributionen verstehen
useradd ist der systemnahe Befehl zum Anlegen von Konten, der auf Linux-Distributionen verwendet wird. Debian und Ubuntu stellen außerdem ein interaktives Skript adduser bereit, das Angaben abfragt und ein Home-Verzeichnis erstellt. Auf Systemen der Red-Hat-Familie ist adduser ein anderer Name für useradd und bietet daher nicht denselben interaktiven Ablauf.
Ohne ausdrückliche Optionen hängt useradd von lokalen Standardwerten ab. Die Standardwerte der Red-Hat-Familie erstellen gewöhnlich ein Home-Verzeichnis; die von Debian und Ubuntu nicht, sofern -m nicht angegeben wird. Auch die Standard-Shell kann sich unterscheiden. Prüfe mit useradd -D Standardwerte wie das Basisverzeichnis für Home-Verzeichnisse und die Shell. /etc/default/useradd und /etc/login.defs liefern Einstellungen unter anderem für UID-Bereiche, private Gruppen und Passwortalter.
Ein anderes Home-Verzeichnis oder eine andere Identität angeben
Nützliche Optionen beschreiben getrennte Teile des Kontos:
| Option | Zweck |
|---|---|
-u 1500 | Eine UID wählen |
-g staff | Eine bestehende primäre Gruppe auswählen |
-d /data/priya | Den Home-Pfad festlegen |
-e 2026-12-31 | Ein Kontoablaufdatum festlegen |
-r | Ein Systemkonto erstellen |
Ein Home-Pfad im Eintrag erstellt das Verzeichnis nicht von selbst. Kombiniere -d mit -m, wenn das neue Home-Verzeichnis erstellt werden muss. Unter Debian kann ein ansonsten gültiges Konto ohne -m bei der Anmeldung ohne nutzbares Home-Verzeichnis dastehen.
Für eine Dienstidentität fordert sudo useradd -r -s /usr/sbin/nologin backupsvc eine System-UID und eine nicht interaktive Shell an. Systemkonten haben standardmäßig kein Home-Verzeichnis. Die nologin-Shell verhindert eine gewöhnliche interaktive Shell-Anmeldung unter dieser Identität.
Die Einrichtung prüfen
Führe getent passwd priya, id priya und ls -la /home/priya aus. Prüfe den Home-Pfad, die Shell, die primäre Gruppe, zusätzliche Gruppen und kopierte versteckte Dateien. /etc/skel ist eine Vorlage: Fügst du dort .bash_aliases hinzu, wirkt sich das auf später erstellte Home-Verzeichnisse aus, nicht auf bereits bestehende. Verwende einfache Kontonamen in Kleinbuchstaben mit Ziffern, Bindestrichen oder Unterstrichen nach dem Anfangsbuchstaben; Leerzeichen und ungewöhnliche Namen werden von vielen Werkzeugen abgelehnt oder falsch verarbeitet.
Wichtige Erkenntnisse
- Verwende
useradd -m, um ein Home-Verzeichnis zu erstellen und/etc/skelzu kopieren. - Lege das erste Passwort getrennt mit
passwdfest. -gwählt eine primäre Gruppe;-Gwählt zusätzliche Gruppen.- Das interaktive
adduservon Debian unterscheidet sich vom gleichnamigen Befehl der Red-Hat-Familie. useradd -rerstellt ein Systemkonto; eine nologin-Shell verhindert eine interaktive Shell-Anmeldung.- Prüfe nach dem Anlegen den Kontoeintrag, die Gruppen und das Home-Verzeichnis.
3.2 Passwörter verwalten und Benutzerkonten ändern oder löschen
Ein Konto kann ein neues Passwort, ein anderes Home-Verzeichnis, eine vorübergehende Zugriffssperre oder eine dauerhafte Entfernung benötigen. Diese Vorgänge ändern unterschiedliche Teile des Kontos. Kläre daher das gewünschte Ergebnis, bevor du einen Befehl wählst.
Ein Passwort ändern oder sein Alter verwalten
Führe passwd aus, um dein eigenes Passwort zu ändern, normalerweise nachdem du das aktuelle eingegeben hast. Ein Administrator verwendet sudo passwd priya, um Priyas Passwort festzulegen, ohne das alte zu kennen. Prüfungen der Passwortqualität können kurze oder einfache Passwörter ablehnen.
sudo passwd -S priya meldet den Passwortstatus. sudo passwd -l priya sperrt das Passwort, indem ! vor seinen Hash gesetzt wird, und sudo passwd -u priya hebt die Sperre auf. sudo passwd -e priya lässt das Passwort ablaufen, sodass der Benutzer bei der nächsten Anmeldung ein anderes wählen muss. Ein Passwort ablaufen zu lassen ist nützlich, wenn ein vorläufiges Passwort vergeben wird.
Verwende sudo chage -l priya, um die Daten zum Passwortalter zu prüfen. Zum Beispiel:
sudo chage -M 90 -m 1 -W 7 priya
Das Höchstalter beträgt 90 Tage, der Mindestabstand zwischen Änderungen einen Tag und die Warnungen beginnen sieben Tage vor dem Ablauf. Diese Werte gelangen in /etc/shadow. sudo chage -E 2026-12-31 priya legt das Ablaufdatum des gesamten Kontos getrennt von der Passwortlaufzeit fest.
Zugriff sperren, ohne Einträge zu löschen
Eine Passwortsperre blockiert die Passwortauthentifizierung. Sie entfernt keine SSH-Schlüssel und verhindert nicht jedes andere Authentifizierungsverfahren. Um künftige Anmeldungen am Konto eines ausscheidenden Benutzers zu verhindern, sperre das Passwort und setze ein vergangenes Kontoablaufdatum, zum Beispiel mit sudo usermod -e 1 priya. Der Wert 1 ist eine Tageszählung im Januar 1970, sodass dieses Datum bereits vergangen ist. Bereits laufende Prozesse werden dadurch nicht beendet; um sie musst du dich gesondert kümmern.
Ein bestehendes Konto ändern
usermod kann mit -c den Kommentar, mit -s die Shell und mit -d den Home-Pfad ändern. Kombiniere -d und -m, um den Inhalt des Home-Verzeichnisses zu verschieben, wie in sudo usermod -d /data/priya -m priya. -l newname ändert den Anmeldenamen, aber das Home-Verzeichnis und die private Gruppe behalten ihre bisherigen Namen, sofern sie nicht ebenfalls geändert werden. -L und -U sperren und entsperren das Passwort.
Um eine zusätzliche Gruppenmitgliedschaft hinzuzufügen, führe sudo usermod -aG developers priya aus. Das -a bedeutet Anhängen. Ohne es ersetzt usermod -G developers priya Priyas gesamte Liste zusätzlicher Gruppen; eine frühere Mitgliedschaft in sudo kann verschwinden. Ihre primäre Gruppe ist eine getrennte Einstellung, die mit -g gesteuert wird.
Das Konto entfernen und seine Dateien behandeln
sudo userdel priya löscht die Kontoeinträge, lässt aber das Home-Verzeichnis bestehen. sudo userdel -r priya entfernt auch das Home-Verzeichnis und die zwischengespeicherte Post. Der normale Befehl verweigert das Entfernen, solange für den Benutzer noch Prozesse laufen.
Dateien an anderen Stellen behalten die numerische UID ihres Eigentümers. Nach dem Löschen des Kontos kann eine Auflistung 1003 als Eigentümer zeigen, weil ihr kein Name zugeordnet ist. Wird diese UID für ein neues Konto wiederverwendet, wird dieses Konto Eigentümer der alten Dateien. Verwende sudo find / -nouser, um Dateien ohne passenden Benutzer zu finden, und archiviere sie oder ordne sie neu zu. Sperre beim Ausscheiden einer Person zuerst künftige Anmeldungen, kümmere dich um laufende Aktivitäten und sichere benötigte Dateien. Lösche das Konto, wenn diese Aufgaben abgeschlossen sind.
Wichtige Erkenntnisse
- Passwortsperre, Passwortablauf und Kontoablauf dienen unterschiedlichen Zwecken.
- Verwende
chage, um Daten zum Passwortalter und Kontoablauf zu prüfen oder zu ändern. - Behalte
-abeiusermod -Gbei, wenn du Gruppen hinzufügen möchtest, ohne bestehende Mitgliedschaften zu entfernen. - Die Änderung eines Anmeldenamens benennt das Home-Verzeichnis oder die private Gruppe nicht um.
userdel -rentfernt das Home-Verzeichnis und die zwischengespeicherte Post, aber Dateien an anderen Stellen behalten die alte UID.- Archiviere verbleibende Dateien oder ordne sie neu zu, bevor diese UID wiederverwendet werden kann.
- Der Kontoablauf beendet keine bereits laufenden Prozesse.
3.3 Gruppen anlegen und Mitgliedschaften verwalten
Ein gemeinsam genutztes Verzeichnis braucht eine Gruppe, Mitglieder und Verzeichnisrechte, die diesen Mitgliedern die Arbeit ermöglichen. Nach einer Änderung der Mitgliedschaft können die Kontodatenbank und die Gruppen einer bereits laufenden Shell vorübergehend voneinander abweichen.
Die Gruppe anlegen und verwalten
sudo groupadd developers weist die nächste freie GID zu. Ergänze -g 1500, um eine bestimmte GID zu wählen, oder -r für eine Systemgruppe. Prüfe mit getent group developers; ein leeres letztes Feld bedeutet, dass noch keine zusätzlichen Mitglieder aufgeführt sind.
Füge ein Mitglied mit einem dieser Befehle hinzu:
sudo usermod -aG developers priya
sudo gpasswd -a priya developers
sudo gpasswd -d priya developers entfernt diese zusätzliche Mitgliedschaft. sudo gpasswd -M alice,bob developers legt die gesamte Mitgliederliste fest und ersetzt die bisherige. Wähle je nach gewünschter Änderung das Hinzufügen, Entfernen oder Ersetzen.
Die Gruppen einer Sitzung aktualisieren
Nach dem Hinzufügen von Priya fragt id priya die Kontodatenbank ab und zeigt die neue Mitgliedschaft sofort. id ohne Argumente in ihrer bestehenden Shell zeigt die Gruppen, die diese Shell tatsächlich verwendet. Sie wurden beim Beginn der Sitzung festgelegt.
Eine neue Anmeldung lädt die neue Liste. newgrp developers bietet einen anderen Weg: Der Befehl startet eine neue Shell mit developers als primärer Gruppe. Verwende exit, um diese Shell zu verlassen. Untersuche bei einem verweigerten Vorgang die Identität in der Sitzung, die den Vorgang ausführt, und nicht nur den Datenbankeintrag.
Eine Gruppe umbenennen oder löschen
sudo groupmod -n devteam developers ändert den Namen, behält aber die GID bei. Bestehende Dateien verweisen weiterhin auf dieselbe numerische Gruppe. Dagegen ändert sudo groupmod -g 1600 developers die Nummer der Gruppe. Dateien, die noch die alte GID 1005 tragen, müssen nachbearbeitet werden; finde sie mit sudo find / -gid 1005 und weise ihnen dann mit chgrp die gewünschte Gruppe zu.
sudo groupdel developers verweigert das Löschen, wenn ein bestehender Benutzer die Gruppe noch als primäre Gruppe hat. Lege vor dem Löschen mit usermod -g eine andere primäre Gruppe fest. Das Löschen eines Gruppennamens entfernt keine Dateien, die seine frühere GID tragen.
Ein Teamverzeichnis einrichten
Für das Webteam von Priya und Kenji:
sudo groupadd webteam
sudo usermod -aG webteam priya
sudo usermod -aG webteam kenji
sudo mkdir /srv/web
sudo chgrp webteam /srv/web
sudo chmod 2770 /srv/web
Nach erneuter Anmeldung können beide Benutzer Dateien in /srv/web erstellen. Modus 2770 gibt Eigentümer und Gruppe rwx, Anderen --- und setzt SGID auf dem Verzeichnis. Eine neue Datei erhält die Gruppe webteam, auch wenn die primäre Gruppe ihres Erstellers dessen private Gruppe ist. Neue Unterverzeichnisse erben ebenfalls SGID.
Das Verzeichnis macht die Teammitgliedschaft nutzbar und hält Andere vom Betreten ab, aber jede Datei hat weiterhin ihren eigenen Modus. Bei einem üblichen angeforderten Dateimodus von 666 gibt eine umask von 002 der Gruppe Schreibrecht, während 022 der Gruppe nur Leserecht lässt. Wenn Teammitglieder die Dateien der jeweils anderen bearbeiten müssen, prüfe neben dem Verzeichnis auch diese Standardwerte für die Erstellung.
Wichtige Erkenntnisse
- Verwende
groupaddzum Anlegen von Gruppen undgpasswdoderusermod -aGzum Hinzufügen von Mitgliedern. - Änderungen der Mitgliedschaft in der Datenbank erreichen eine bestehende Sitzung nach einer erneuten Anmeldung oder einer geeigneten neuen Shell.
- Das Umbenennen einer Gruppe behält ihre GID bei; nach einer GID-Änderung müssen bestehende Datei-GIDs korrigiert werden.
- Eine Gruppe kann nicht gelöscht werden, solange ein Konto sie noch als primäre Gruppe verwendet.
- Ein gemeinsam genutztes SGID-Verzeichnis weist neuen Dateien seine Gruppe zu; der Modus jeder Datei steuert weiterhin ihre Bearbeitung.
4Eigentümer, Gruppenzuordnung und Zugriffsrechte ablesen und ändern
Der Zugriff hängt von zwei zusammengehörenden Fragen ab: Welcher Benutzer und welche Gruppe sind einem Objekt zugeordnet und was erlauben seine Rechtebits? Ein langes Listenformat liefert die nötigen Angaben, aber bei Dateien und Verzeichnissen haben dieselben Bits unterschiedliche Aufgaben. Das Lesen eines Dokuments, das Betreten eines Verzeichnisses und das Löschen eines Namens erfordern daher unterschiedliche Prüfungen. Lege mit chmod die erlaubten Aktionen fest und weise mit chown oder chgrp die Identitäten zu, für die diese Aktionen gelten.
4.1 Eigentümer, Gruppenzuordnung und Zugriffsrechte in einer Auflistung ablesen
Ein langes Listenformat zeigt die für eine Zugriffsentscheidung nötigen Informationen in einer Zeile. Lies Eigentümer und Gruppe zusammen mit den neun Rechtebits; die Bits allein sagen nicht, welche Rechte eine bestimmte Person erhält.
Ein langes Listenformat entschlüsseln
-rw-r----- 1 priya developers 2048 Oct 22 09:15 report.txt
Das erste Feld enthält Dateityp und Zugriffsrechte. Die folgenden Felder geben die Anzahl der Hardlinks, den Eigentümer, die zugeordnete Gruppe, die Größe in Byte, den Änderungszeitpunkt und den Namen an. Diese reguläre Datei gehört Priya und der Gruppe developers. Sie ist 2048 Byte groß; die angezeigte Zeit gibt die letzte Inhaltsänderung an.
Das erste Zeichen ist - für eine reguläre Datei, d für ein Verzeichnis oder l für einen symbolischen Link. Außerdem können dir c und b für zeichen- und blockorientierte Geräte, p für eine benannte Pipe und s für einen Socket begegnen.
Teile die nächsten neun Stellen in drei Tripel:
| Klasse | Bits hier | Zugriff auf eine gewöhnliche Datei |
|---|---|---|
| Eigentümer | rw- | Inhalt lesen und ändern |
| Gruppe | r-- | Inhalt lesen |
| Andere | --- | Kein Zugriff über diese Klasse |
In jedem Tripel bedeuten die Stellen in dieser Reihenfolge Lesen, Schreiben und Ausführen. Ein Bindestrich kennzeichnet ein fehlendes Recht und keine leere Stelle, die beim Zählen übersprungen wird.
Genau eine Klasse auswählen
Bei einer gewöhnlichen Rechteprüfung fragt Linux:
- Stimmt der Benutzer des Prozesses mit dem Dateieigentümer überein? Verwende das Eigentümertripel.
- Stimmt andernfalls eine seiner Gruppen mit der Gruppe der Datei überein? Verwende das Gruppentripel.
- Verwende andernfalls das Tripel für Andere.
Die Klassen werden nicht addiert. Angenommen, Priya besitzt eine Datei, deren vollständige Zeichenfolge für Typ und Modus ----rw-rw- lautet. Ihr Eigentümertripel ist ---, sodass sie die Datei über die gewöhnlichen Bits nicht lesen kann, obwohl Gruppe und Andere rw- haben. Als Eigentümerin kann sie den Modus ändern. Ein weniger restriktives Tripel für Gruppe oder Andere setzt das ausgewählte Eigentümertripel nicht außer Kraft.
Root kann gewöhnliche Prüfungen der Lese- und Schreibrechte umgehen. Um eine reguläre Programmdatei auszuführen, braucht selbst root mindestens ein Ausführungsbit auf ihr. Für eine Modusprüfung sind daher sowohl die Identität des Benutzers als auch der versuchte Vorgang nötig.
Verzeichnisse und Nummern untersuchen
ls -ld /srv/web listet das Verzeichnis selbst auf. Ohne -d listet ls -l /srv/web normalerweise Einträge darin auf, was von einer Beschränkung auf dem Verzeichnis ablenken kann. ls -a bezieht versteckte Namen ein, während ls -n Eigentümer und Gruppen numerisch anzeigt. Dateien speichern UIDs und GIDs; wurde ein Konto oder eine Gruppe gelöscht, kann auch eine gewöhnliche Auflistung die verbleibende Nummer zeigen.
Für eine knappe Ausgabe führe aus:
stat -c '%A %a %U %G %n' report.txt
Der Befehl kann -rw-r----- 640 priya developers report.txt anzeigen und stellt dabei Buchstaben und Oktalziffern nebeneinander. Ein + nach den Buchstaben signalisiert zusätzliche Einträge in einer Zugriffskontrollliste. Ein symbolischer Link zeigt gewöhnlich lrwxrwxrwx; Linux verwendet für den Zugriff die Rechte des Ziels und nicht die angezeigten Bits des Links.
Wichtige Erkenntnisse
- Lies zuerst den Dateityp und dann die Tripel für Eigentümer, Gruppe und Andere.
- Die erste zutreffende Klasse liefert die gewöhnlichen Rechte; die Klassen werden nicht kombiniert.
- Dateien speichern numerische UIDs und GIDs, auch wenn eine Auflistung Namen zeigt.
ls -lduntersucht das Verzeichnis selbst undstatkann Modi als Buchstaben und Oktalziffern zeigen.
4.2 Erklären, was Lese-, Schreib- und Ausführungsrechte erlauben
Lesen, Schreiben und Ausführen beschreiben unterschiedliche Aktionen auf Dateien und Verzeichnissen. Ein Verzeichnis speichert Namen, die zu Dateien führen. Für das Ändern eines Dateiinhalts und das Entfernen seines Namens gelten daher unterschiedliche Rechteprüfungen.
Das Bit dem Objekt zuordnen
| Bit | Reguläre Datei | Verzeichnis |
|---|---|---|
r | Inhalt lesen oder kopieren | Namen der Einträge auflisten |
w | Inhalt ändern, überschreiben oder anhängen | Mit x Einträge erstellen, löschen oder umbenennen |
x | Als Programm ausführen | Betreten und benannte Einträge erreichen |
An eine Datei mit Schreibrecht, aber ohne Leserecht kann etwas angehängt werden, ohne sie zu lesen. Eine Shell kann zum Beispiel eine beschreibbare Protokolldatei für echo text >> log.txt öffnen, selbst wenn cat log.txt fehlschlägt. Ein Editor braucht häufig sowohl Lese- als auch Schreibrecht, weil er zuerst den vorhandenen Inhalt lädt.
Ein als ./backup.sh ausgeführtes Skript braucht Ausführungsrecht und muss für seinen Interpreter lesbar sein. Ist das Skript lesbar, hat aber kein Ausführungsrecht, kann bash backup.sh es dennoch lesen und ausführen: Bash ist in diesem Befehl das ausführbare Programm.
Auflisten und Durchsuchen unterscheiden
Das Leserecht auf einem Verzeichnis erlaubt dir, Namen zu sehen. Das Ausführungsrecht auf einem Verzeichnis, auch Durchsuchungsrecht genannt, erlaubt dir, einen Eintrag über seinen Namen zu erreichen. Mit Lese-, aber ohne Ausführungsrecht kann ls Namen zeigen, während ls -l ihre Details nicht abrufen kann und möglicherweise Fehler und Fragezeichen anzeigt. Du kannst die benannten Dateien durch dieses Verzeichnis nicht öffnen.
Mit Ausführungs-, aber ohne Leserecht ist das Umgekehrte möglich: Du kannst notes.txt erreichen, wenn du den genauen Namen bereits kennst, aber das Verzeichnis nicht auflisten, um die Namen herauszufinden. Der Modus der Datei selbst muss den gewünschten Zugriff weiterhin erlauben.
Den gesamten Pfad verfolgen
Um /home/priya/notes/public.txt zu lesen, braucht Kenji Ausführungsrecht auf jedem Verzeichnis im Pfad und Leserecht auf der Datei. Hat /home/priya den Modus 700, lautet sein Tripel für Andere ---; Kenji kommt dort nicht weiter, selbst wenn public.txt den Modus 644 hat. Mehr Leserecht auf der Datei kann ein fehlendes Durchsuchungsbit auf einem darüberliegenden Verzeichnis nicht beheben.
Verwende ls -ld /home/priya /home/priya/notes, um die Verzeichnisse selbst zu untersuchen. Wähle auf jeder Ebene die für Kenji geltende Klasse und prüfe ihr Ausführungsbit. Die maßgebliche Klasse kann von einem Verzeichnis zum nächsten wechseln, weil deren Eigentümer und Gruppen unterschiedlich sein können.
Löschen und Umbenennen vorhersagen
Das Löschen einer Datei entfernt einen Verzeichniseintrag. Kenji braucht Schreib- und Ausführungsrecht auf dem enthaltenden Verzeichnis, nicht Schreibrecht auf der Datei. In einem gewöhnlichen beschreibbaren Verzeichnis ohne Sticky-Bit kann er Priyas schreibgeschützte Datei entfernen. Umgekehrt erlaubt ihm das Eigentum an einer Datei nicht, sie aus einem Verzeichnis zu löschen, auf dem ihm das Schreibrecht fehlt.
Das Entfernen des Schreibrechts von einer Datei schützt daher ihren Inhalt vor Änderungen, aber nicht ihren Namen vor der Entfernung. Das Sticky-Bit eines Verzeichnisses schränkt das Löschen und Umbenennen in gemeinsam beschreibbaren Verzeichnissen anhand des Eigentümers ein. Der Zugriff auf Dateien und der Zugriff auf Verzeichniseinträge beantworten unterschiedliche Fragen.
Wichtige Erkenntnisse
- Bei Dateien steuern
r,wundxdas Lesen, Ändern und Ausführen. - Bei Verzeichnissen listet
rNamen auf; mitxerreichst du Einträge;wmitxerlaubt Änderungen an Einträgen. - Um eine Datei zu erreichen, ist Ausführungsrecht auf jedem Verzeichnis in ihrem Pfad nötig.
- Ein lesbares Skript kann auch ohne eigenes Ausführungsbit an seinen Interpreter übergeben werden.
- Das Löschen einer Datei hängt von den Rechten ihres Verzeichnisses ab; in Verzeichnissen mit Sticky-Bit gilt eine zusätzliche Einschränkung.
4.3 Zugriffsrechte mit chmod ändern
Verwende chmod, um die Rechte einer Datei oder eines Verzeichnisses zu ändern, das dir gehört. Root kann sie ebenfalls ändern. Schreibzugriff über eine Gruppe erlaubt dir, den Inhalt einer Datei zu ändern, macht dich aber nicht zum Eigentümer und erlaubt dir nicht, ihren Modus festzulegen.
Eine gezielte symbolische Änderung vornehmen
Ein symbolischer Modus enthält eine Klasse, einen Operator und Bits. Die Klassen sind u für Eigentümer, g für Gruppe, o für Andere und a für alle drei. + fügt Rechte hinzu, - entfernt sie und = legt die Rechte dieser Klasse genau fest.
chmod u+x deploy.sh
chmod go-w notes.txt
chmod u=rw,g=r,o= report.txt
Der erste Befehl fügt nur das Ausführungsbit des Eigentümers hinzu. Der zweite entfernt das Schreibrecht für Gruppe und Andere und behält ihre übrigen Bits bei. Der dritte gibt dem Eigentümer Lese- und Schreibrecht, der Gruppe Leserecht und Anderen keine Rechte: rw-r-----.
Gib die Klasse an, wenn du eine genaue Änderung möchtest. Lässt du sie weg, wie in chmod +w notes.txt, schränkt die umask ein, welche Bits der Klassen betroffen sind. Bei umask 022 fügt dieser Befehl das Schreibrecht nur für den Eigentümer hinzu; chmod a+w notes.txt bezieht ausdrücklich alle drei Klassen ein.
Jedes Tripel in eine Oktalziffer umrechnen
Lesen hat den Wert 4, Schreiben 2 und Ausführen 1. Addiere die in jeder Klasse vorhandenen Werte:
| Ziffer | Bits | Rechnung |
|---|---|---|
| 7 | rwx | 4 + 2 + 1 |
| 6 | rw- | 4 + 2 |
| 5 | r-x | 4 + 1 |
| 4 | r-- | 4 |
| 0 | --- | Keine |
Teile rw-r----- in rw-, r--, ---: Die Ziffern sind 6, 4, 0. chmod 640 report.txt setzt diese neun gewöhnlichen Bits unabhängig vom vorherigen gewöhnlichen Modus. Kehre den Vorgang für 750 um: 7 ergibt rwx, 5 ergibt r-x und 0 ergibt ---, zusammen rwxr-x---.
Einen zweckmäßigen Endmodus wählen
Modus 600 hält eine Datei für ihren Eigentümer privat. Modus 644 erlaubt anderen Benutzern, eine gewöhnliche Datei zu lesen. Modus 664 erlaubt außerdem der Gruppe, sie zu bearbeiten. Private Verzeichnisse verwenden häufig 700, für die Gruppe lesbare Verzeichnisse 750 und für die Gruppe beschreibbare Verzeichnisse 770. Programme oder öffentliche Verzeichnisse verwenden häufig 755.
Dieselben Ziffern erlauben bei unterschiedlichen Objekten unterschiedliche Aktionen. Wendest du 644 auf ein Verzeichnis an, entfernst du das Ausführungsrecht für jede Klasse. Nicht einmal der Eigentümer kann es dann noch betreten oder Dateien darüber öffnen. Verwende einen Verzeichnismodus mit Durchsuchungsrecht für die Personen, die Zugriff benötigen.
Änderungen auf einen Baum anwenden
chmod -R 755 site/ macht auch jede gewöhnliche Datei ausführbar. Verwende für einen Baum mit Verzeichnissen und gewöhnlichen Dokumenten das bedingte Ausführungsrecht:
chmod -R u=rwX,go=rX site/
Das große X fügt das Ausführungsrecht für Verzeichnisse und für Dateien hinzu, die bereits ein Ausführungsbit haben. Nicht ausführbare Dateien erhalten 644; Verzeichnisse erhalten 755. Bereits ausführbare Dateien behalten ihr Ausführungsrecht. So bleibt das Durchqueren möglich, ohne jedes Dokument als Programm ausführbar zu machen. Sonderbits sind davon getrennt: GNU chmod behält SUID und SGID auf Verzeichnissen bei, sofern du sie nicht ausdrücklich entfernst, etwa mit chmod g-s site/.
Wichtige Erkenntnisse
- Nur der Eigentümer oder root kann den Modus einer Datei ändern.
- Das symbolische
+und-ändern ausgewählte Bits;=legt die Rechte einer Klasse genau fest. - Oktale Modi addieren für jede Klasse Lesen 4, Schreiben 2 und Ausführen 1.
- Wird die Klasse im symbolischen Modus weggelassen, ist die umask relevant.
- Verzeichnisse brauchen Durchsuchungsrecht für Benutzer, die ihre Einträge erreichen müssen.
- Das große
Xermöglicht rekursive Änderungen, ohne jede gewöhnliche Datei ausführbar zu machen.
4.4 Eigentümer und Gruppenzuordnung mit chown und chgrp ändern
Eigentümer und Gruppenzuordnung bestimmen, wessen Rechtetripel geprüft werden. Eine passende Zuordnung kann ein Arbeitsverzeichnis reparieren, das versehentlich mit sudo erstellt wurde, ohne allen anderen weitergehenden Zugriff zu gewähren.
Die Formen von chown lesen
chown kann einen Benutzer, eine Gruppe oder beides ändern:
| Befehl | Ergebnis |
|---|---|
sudo chown kenji report.txt | Eigentümer ändern; Gruppe beibehalten |
sudo chown kenji:webteam report.txt | Eigentümer und Gruppe ändern |
sudo chown :webteam report.txt | Nur die Gruppe ändern |
sudo chown kenji: report.txt | Eigentümer und Kenjis Anmeldegruppe festlegen |
chgrp webteam report.txt | Nur die Gruppe ändern |
Auch numerische IDs funktionieren, wie in sudo chown 1002:1005 report.txt. Die Namen werden in Nummern aufgelöst; die Datei speichert diese Nummern.
Nur root kann eine Datei einem anderen Eigentümer übertragen. Ein Eigentümer kann die Gruppe seiner eigenen Datei zu einer Gruppe ändern, der er angehört. Priya kann also chgrp webteam plan.txt verwenden, wenn ihr die Datei gehört und sie zu webteam gehört. Um sie der Gruppe finance zuzuweisen, wäre auch eine Mitgliedschaft in dieser Gruppe nötig. Dass ein anderes Mitglied die Datei bearbeiten kann, erlaubt ihm nicht, ihren Eigentümer oder Modus zu ändern.
Ein versehentlich root gehörendes Verzeichnis reparieren
Kenji hat einen Erstellungsbefehl mit sudo ausgeführt. Die Auflistung lautet:
drwxr-xr-x 2 root root 4096 Oct 22 10:02 /home/kenji/app
Er ist nicht der Eigentümer und gehört nicht zur zugeordneten Gruppe, sodass er das r-x für Andere erhält. Er kann das Verzeichnis untersuchen und betreten, aber keine Einträge erstellen, weil das Schreibrecht fehlt. Würde das Verzeichnis für alle beschreibbar gemacht, gewährte das mehr Zugriff, als sein Projekt benötigt.
Gehört das Projekt Kenji, stellt sudo chown -R kenji: ~/app sein Eigentum und seine Anmeldegruppe im gesamten Verzeichnis wieder her. Sein Eigentümertripel ist nun rwx, sodass er Dateien erstellen kann. Prüfe vor jedem rekursiven Befehl zur Änderung der Eigentumszuordnung den Zielpfad: Die Anwendung auf /etc oder /usr kann den Systembetrieb stören. -R bedeutet das Verzeichnis und alles darunter.
Eigentümer nach Dateioperationen vorhersagen
Eine neu erstellte Datei gehört dem Benutzer des erstellenden Prozesses. Ihre Gruppe stammt normalerweise aus der primären Gruppe dieses Prozesses oder aus einem übergeordneten SGID-Verzeichnis. Wird mit cp eine gewöhnliche neue Kopie erstellt, wird daher der aufrufende Benutzer ihr Eigentümer. Ein mv innerhalb desselben Dateisystems ändert den Speicherort einer bestehenden Datei und behält ihren Eigentümer und ihre Gruppe bei. Kopieroptionen, die die Eigentumszuordnung erhalten, verhalten sich anders als eine gewöhnliche neue Kopie.
Dieser Unterschied erklärt, warum das Verschieben einer alten Datei in ein gemeinsam genutztes Verzeichnis nicht die Gruppenvererbungsregel dieses Verzeichnisses auf sie anwendet. SGID wirkt bei der Erstellung; verwende chgrp, wenn die Gruppe einer bestehenden Datei geändert werden muss.
Identität und Zugriff verbinden
Die Zuweisung von webteam mit chgrp legt fest, für wen die Gruppenklasse steht. Sie fügt kein Lese- oder Schreibrecht für die Gruppe hinzu. Verwende chmod, um nach der Wahl der Gruppe die benötigten Bits zu setzen. Eine Änderung der Eigentumszuordnung einer ausführbaren Datei kann auch SUID- oder SGID-Rechte entfernen; prüfe den resultierenden Modus, wenn diese Bits wichtig sind.
Wichtige Erkenntnisse
chownweist den Eigentümer oder die Gruppe zu;chgrpändert nur die Gruppe.- Nur root kann den Eigentümer ändern.
- Eigentümer dürfen ihre Dateien Gruppen zuweisen, denen sie angehören.
- Eine neue Kopie gehört normalerweise ihrem Ersteller; ein Verschieben innerhalb desselben Dateisystems behält die Eigentumszuordnung bei.
- Die SGID-Vererbung gilt für neu erstellte Dateien, nicht für eine bestehende Datei, die in das Verzeichnis verschoben wird.
5Standardrechte und Sonderrechte steuern und Zugriffsprobleme lösen
Neue Dateien übernehmen Einstellungen für die Erstellung, während Sonderrechte das Verhalten von Programmen oder gemeinsam genutzten Verzeichnissen ändern. Ein Teamverzeichnis funktioniert nur, wenn seine Gruppe, die geerbte Gruppenzuordnung und die Modi neuer Dateien zusammenpassen. Wenn der Zugriff fehlschlägt, verfolge den tatsächlichen Benutzer und den Pfad bis zum ersten fehlenden Recht. Diese Diagnose ermöglicht dir, das benötigte Recht zu korrigieren und gleichzeitig den Zugriff auf private Daten und Administratorrechte zu beschränken.
5.1 Standardrechte mit umask festlegen
Die Rechte einer neuen Datei ergeben sich aus zwei Angaben: dem Modus, den das erstellende Programm anfordert, und der umask des Prozesses. Die Maske entfernt angeforderte Bits; sie fügt niemals Rechte hinzu, die das Programm nicht angefordert hat.
Mit dem angeforderten Erstellungsmodus beginnen
Editoren und Shell-Umleitungen fordern für gewöhnliche neue Dateien normalerweise 666 oder rw-rw-rw- an. Für die Erstellung von Verzeichnissen wird gewöhnlich 777 oder rwxrwxrwx angefordert. Eine umask ist eine Zusammenstellung von Bits, die aus diesem angeforderten Modus entfernt werden. Ein Bit bleibt nur erhalten, wenn der angeforderte Modus es enthält und die Maske nicht.
Bei umask 022 bleiben alle angeforderten Eigentümerbits erhalten, das Schreibrecht der Gruppe und das Schreibrecht für Andere werden entfernt. Eine Datei erhält 644, ein Verzeichnis 755. Lies jede Ziffer als Bits, nicht als gewöhnliche Dezimalzahl.
| Maske | Datei mit angefordertem Modus 666 | Verzeichnis mit angefordertem Modus 777 |
|---|---|---|
| 022 | 644 | 755 |
| 027 | 640 | 750 |
| 077 | 600 | 700 |
| 002 | 664 | 775 |
| 033 | 644 | 744 |
Bei 027 verliert die Gruppe das Schreibrecht, während Andere alle drei Bits verlieren. Das ist nützlich, wenn ein Team neue Dateien lesen soll, Benutzer außerhalb des Teams aber keinen Zugriff haben sollen. Bei 002 bleibt das Schreibrecht der Gruppe erhalten; die zugeordnete Gruppe der Datei bestimmt weiterhin, wer es erhält.
Warum Subtraktion nicht funktioniert
Nimm den angeforderten Dateimodus 666 und die Maske 033. Jede 3 bedeutet Schreiben plus Ausführen. Jedes angeforderte Dateitripel ist aber rw-: Das Ausführungsrecht fehlt bereits. Das Entfernen von Schreib- und Ausführungsrecht lässt für Gruppe und Andere r-- übrig, das Ergebnis ist also 644. Eine Subtraktion der Ziffern ergäbe 633 und würde fälschlich nahelegen, dass Ausführungsbits hinzukommen können.
Bei einem angeforderten Verzeichnismodus von 777 ergibt das Entfernen derselben Bits 744. Diesem Verzeichnis fehlt das Ausführungsrecht für Gruppe und Andere, sodass diese Klassen seine Einträge nicht erreichen können, obwohl sie Namen auflisten können. Eine Maske, die den gewünschten Dateimodus ergibt, kann bei Verzeichnissen zu einem unzweckmäßigen Ergebnis führen.
Deine Maske prüfen und setzen
Führe umask aus, um die aktuelle Einstellung zu sehen. Sie wird häufig mit einer führenden Null angezeigt, etwa als 0022. Die führende Null dient der Formatierung; Linux verwendet die neun gewöhnlichen Rechtebits. umask -S gibt erlaubte Bits aus, für 022 etwa u=rwx,g=rx,o=rx; ein Programm kann eine Teilmenge dieser Bits anfordern.
umask 027 ändert die aktuelle Shell und wird an die Programme vererbt, die sie startet. Bestehende Dateien behalten ihre Modi. Verwende chmod, wenn eine bereits erstellte Datei andere Rechte braucht.
Einen dauerhaften Standardwert wählen
Eine Zeile wie umask 027 in ~/.profile oder ~/.bashrc kann den Wert für die Shells setzen, die diese Startdatei lesen. Systemweite Standardwerte können aus /etc/profile oder UMASK in /etc/login.defs stammen. Distribution und Kontoeinrichtung bestimmen, welche Dateien wann gelesen werden.
Viele Systeme verwenden 022, während Einrichtungen mit privaten Gruppen für reguläre Benutzer häufig 002 verwenden. Ein Compiler kann ausführbare Ausgaben mit Modus 777 anfordern; bei 022 wird daraus 755. Der von einem Texteditor angeforderte Modus 666 hat keine Ausführungsbits, sodass das Schreiben eines Skripts dieses nicht selbst ausführbar macht.
Wichtige Erkenntnisse
- Ein neuer Modus behält vom Programm angeforderte Bits, sofern die umask sie nicht entfernt.
- Der angeforderte Modus für gewöhnliche Dateien ist meist 666, für Verzeichnisse meist 777.
- Wende die Maske Bit für Bit an; eine Subtraktion wie bei Dezimalzahlen kann das falsche Ergebnis liefern.
- Eine Änderung der Maske wirkt sich auf spätere Erstellungen aus, nicht auf bestehende Dateien.
- Eine geerbte Shell-Maske und der von einem Programm angeforderte Modus sind getrennte Angaben.
- Prüfe bei der Wahl eines Standardwerts sowohl das Ergebnis für Dateien als auch das für Verzeichnisse.
5.2 SUID, SGID und das Sticky-Bit verwenden
Drei Sonderbits ergänzen das Verhalten über die gewöhnlichen Rechte für Eigentümer, Gruppe und Andere hinaus. Ihre Bedeutung hängt davon ab, ob das Objekt ein Programm oder ein Verzeichnis ist.
Die zusätzliche Ziffer erkennen
Eine führende Oktalziffer kombiniert SUID 4, SGID 2 und Sticky 1. Modus 4755 ist SUID plus der gewöhnliche Modus 755. Modus 2770 ist SGID plus 770. Modus 3770 kombiniert SGID und Sticky, weil 2 plus 1 gleich 3 ist.
In einem langen Listenformat teilen sich die Bits die Positionen für das Ausführungsrecht. Ein kleines s an der Eigentümerposition bedeutet SUID und Ausführungsrecht für den Eigentümer; ein kleines s an der Gruppenposition bedeutet SGID und Ausführungsrecht für die Gruppe. Ein kleines t an der Position für Andere bedeutet Sticky und Ausführungsrecht für Andere. Ein großes S oder T bedeutet, dass das Sonderbit gesetzt ist, das Ausführungsrecht an dieser Position aber fehlt.
SUID und SGID auf Programmen
SUID lässt eine ausführbare Datei mit der effektiven Identität ihres Eigentümers laufen. /usr/bin/passwd erscheint gewöhnlich als -rwsr-xr-x root root: Das Programm kann geschützte Passwortdaten aktualisieren und setzt dabei durch, wessen Passwort der aufrufende Benutzer ändern darf. Sein Start gibt dem aufrufenden Benutzer keine root-Shell. Linux ignoriert SUID auf Skripten und Verzeichnissen.
SGID auf einer ausführbaren Datei verwendet entsprechend die Gruppenidentität der Datei. Diese Bits gewähren Zugriff unter Kontrolle des Programms, daher ist dessen Verhalten wichtig. Setze SUID niemals auf einer Shell, einem Editor oder einem Skript. Ein Administrator kann reguläre SUID-Dateien mit sudo find / -perm -4000 -type f 2>/dev/null erfassen; verwende -perm -2000 für SGID-Dateien und vergleiche die Ergebnisse mit der erwarteten Systemeinrichtung.
SGID auf einem Teamverzeichnis
Auf einem Verzeichnis sorgt SGID dafür, dass neue Einträge die Gruppe des Verzeichnisses übernehmen und neue Unterverzeichnisse SGID erben. Angenommen, /srv/web gehört root:webteam, hat den Modus 2770 und wird als drwxrws--- angezeigt. Priya hat eine private primäre Gruppe, gehört aber zu webteam. Wenn sie index.html in diesem Verzeichnis erstellt, wird dessen Gruppe webteam.
Der gewöhnliche Modus der Datei hängt weiterhin von ihrer Erstellung ab. Bei einem angeforderten Dateimodus von 666 und umask 002 wird er zu 664 und Kenji, ein weiteres Teammitglied, kann sie bearbeiten. Bei 022 wird er zu 644, sodass Kenji nur Leserecht hat. SGID liefert die Gruppe, kein zusätzliches Schreibbit.
Verzeichnisse mit Sticky-Bit und das Löschen
Das Sticky-Bit schränkt das Löschen und Umbenennen ein: Bei vorhandenem Verzeichniszugriff kann ein Eintrag vom Eigentümer der Datei, dem Eigentümer des Verzeichnisses oder root entfernt werden. So sind gemeinsam beschreibbare Verzeichnisse nutzbar, ohne dass Benutzer die Einträge anderer entfernen können. /tmp und /var/tmp verwenden gewöhnlich 1777, angezeigt als drwxrwxrwt. Das Sticky-Bit verhindert keine Änderungen am Dateiinhalt, wenn der Dateimodus sie erlaubt. Linux ignoriert es auf regulären Dateien.
Setze Bits mit chmod u+s prog, chmod g+s /srv/web oder chmod o+t /srv/drop. Entferne sie mit u-s, g-s oder o-t. Bei GNU chmod behält chmod 755 /srv/web ein bestehendes SGID-Bit auf einem Verzeichnis bei; verwende chmod g-s /srv/web, um es ausdrücklich zu entfernen.
Wichtige Erkenntnisse
- SUID verwendet die Eigentümeridentität einer Programmdatei; SGID auf einer ausführbaren Datei verwendet deren Gruppenidentität.
- SGID auf einem Verzeichnis gibt neuen Dateien dessen Gruppe und vererbt SGID an neue Unterverzeichnisse.
- Ein Verzeichnis mit Sticky-Bit schränkt das Löschen und Umbenennen anhand des Eigentümers ein.
- Ein kleines
sodertenthält das Ausführungsrecht; bei einem großenSoderTfehlt es an dieser Position. - SGID-Gruppenvererbung und das Schreibrecht der neuen Datei sind getrennt.
- GNU chmod behält SGID auf Verzeichnissen bei, wenn ein dreistelliger Modus verwendet wird.
- Das Sticky-Bit schützt Einträge vor dem Entfernen, aber keinen beschreibbaren Inhalt vor der Bearbeitung.
5.3 Berechtigungsprobleme diagnostizieren und das Prinzip der geringsten Rechte anwenden
Ein Fehler „Permission denied“ bezeichnet einen fehlgeschlagenen Vorgang und nicht unbedingt einen falschen Dateimodus. Die Sperre kann an den Gruppen deiner Sitzung, einem übergeordneten Verzeichnis, der Datei selbst oder einer durch einen Befehl mit erhöhten Rechten entstandenen Eigentumszuordnung liegen.
Identität, Pfad, Klasse und Vorgang verfolgen
Beginne mit id ohne Argumente in der betroffenen Sitzung. Wurde kürzlich eine Gruppe hinzugefügt, vergleiche die aktive Liste mit id username, das die Datenbank abfragt. Eine erneute Anmeldung kann die neue Mitgliedschaft laden.
Untersuche als Nächstes den gesamten Pfad:
namei -l /srv/reports/q3.txt
namei -l zeigt Eigentümer, Gruppen und Modi entlang des Pfads. Du kannst auch jedes Verzeichnis mit ls -ld untersuchen. Wähle bei jedem Objekt die erste zutreffende Klasse: Eigentümer, andernfalls Gruppe, andernfalls Andere. Frag dich dann, was der versuchte Vorgang braucht. Lesen braucht r auf der Datei und Durchsuchungsrecht auf allen übergeordneten Verzeichnissen. Das Erstellen, Entfernen oder Umbenennen eines Eintrags braucht w und x auf seinem Verzeichnis, gegebenenfalls mit Einschränkungen durch das Sticky-Bit.
Den ersten blockierten Vorgang finden
Kenji gehört zu finance und versucht cat /srv/reports/q3.txt. Die relevanten Objekte sind:
drwxr-xr-x root root /srv
drwxr-x--- root finance /srv/reports
-rw------- maria finance /srv/reports/q3.txt
Kenji kann /srv mit dem Ausführungsrecht für Andere durchqueren. Bei /srv/reports wählt seine Mitgliedschaft in finance das r-x der Gruppe, sodass er auch dort hindurchkommt. Bei q3.txt ist er nicht Maria und das finance-Tripel ist ---. Es fehlt das Leserecht der Gruppe auf der Datei.
Sollen finance-Mitglieder den Bericht lesen dürfen, kann Maria oder root chmod g+r /srv/reports/q3.txt ausführen. Der resultierende Modus ist 640. Er liefert das fehlende Recht, ohne der Gruppe Schreibrecht zu geben oder den Bericht für Andere zu öffnen. Ein Administrator kann mit sudo -u kenji cat /srv/reports/q3.txt testen und den Befehl dabei als Kenji statt als root ausführen.
Die kleinste Korrektur wählen
Eine passende Lösung kann sein, eine Teammitgliedschaft hinzuzufügen, Leserecht für die Gruppe zu setzen, den Eigentümer eines Projekts wiederherzustellen oder Durchsuchungsrecht für die vorgesehene Klasse auf dem Verzeichnis hinzuzufügen. chmod -R 777 gibt jedem lokalen Konto Schreibzugriff im gesamten Baum und macht gewöhnliche Dateien ausführbar. Zudem kann es nicht jede Ursache eines fehlgeschlagenen Zugriffs beheben.
Prüfe häufige Ursachen, bevor du einen großen Baum bearbeitest: eine inaktive neue Mitgliedschaft, fehlendes x auf einem übergeordneten Verzeichnis, mit sudo erstellte Arbeit im Eigentum von root und neue Dateien, deren umask benötigten Teamzugriff entfernt hat. FAT32- und exFAT-Laufwerke speichern keine nativen Linux-UIDs, -GIDs und -Modi; Einhängeoptionen liefern diese Werte, sodass chmod oder chown für einzelne Dateien fehlschlagen oder wirkungslos bleiben kann.
Private Daten privat halten
Ein privater SSH-Schlüssel wie ~/.ssh/id_ed25519 sollte normalerweise den Modus 600 haben; sein Verzeichnis .ssh hat gewöhnlich 700. SSH prüft den Schutz privater Schlüssel und kann einen zu weit zugänglichen Schlüssel ablehnen. /etc/shadow bleibt für gewöhnliche Benutzer unzugänglich. Administratoren mit vollen sudo-Rechten können den gewöhnlichen Schutz privater Dateien umgehen. Halte daher diese Gruppe klein und erlaube bestimmte Aktionen, wenn eine vollständige Administration nicht nötig ist.
Wichtige Erkenntnisse
- Prüfe die Identität und aktiven Gruppen der betroffenen Sitzung, bevor du Dateimodi änderst.
- Untersuche neben der Zieldatei jedes übergeordnete Verzeichnis.
- Stimme das Recht auf den Vorgang ab und nimm die kleinstmögliche notwendige Änderung vor.
- Teste das Ergebnis als betroffener Benutzer; ein Test als root kann ein fehlendes gewöhnliches Recht verbergen.
- Standardwerte bei der Erstellung und Dateisysteme außerhalb von Linux können überraschende Modi erklären.
Linux-Benutzer und Zugriffsrechte: Beispiele
1Eine Identität und ihre Kontoeinträge lesen
13 Schritte
- 1EinführungMit der Identität beginnen, die die Arbeit ausführt
Eine Dateianfrage stammt von einem laufenden Prozess und dieser Prozess trägt eine Benutzeridentität und Gruppen. Du wirst Alices Identität ablesen, sie mit Kontoeinträgen verbinden und aktuelle Sitzungen von gespeicherten Kontodaten unterscheiden. Diese Hinweise brauchst du, bevor du entscheidest, welchen Zugriff ihre Befehle erhalten.
- 2ErklärungEine Nummer verleiht root seine Rechte
Linux verwendet eine UID, nicht die Schreibweise eines Namens, um einen Benutzer zu identifizieren. UID 0 ist root; reguläre Konten beginnen häufig bei 1000. Dienste laufen gewöhnlich unter eingeschränkten Systemkonten mit einer nologin-Shell. Ein Dienst braucht daher weder die Anmeldung einer Person noch volle root-Rechte, um seine eigene Arbeit zu erledigen.
- 3BeispielAlices id-Ausgabe lesen
Alice führt
idaus und sieht:uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo),1005(developers)Die UID identifiziert Alice. Die GID bezeichnet ihre primäre Gruppe. Die letzte Liste enthält ihre primäre Gruppe sowie sudo und developers. UID 1001 ist nicht root, obwohl die Gruppe sudo ausgewählte Befehle mit erhöhten Rechten erlauben kann.
- 4HerausforderungEin mächtiger Name oder eine mächtige UID?
Ein Konto namens
maintainerhat UID 0. Ein anderes namensroot-helperhat UID 1030. Welche Identität hat ohne sudo root-Rechte und warum?---reveal---
Maintainer hat root-Rechte, weil seine UID 0 ist. Der Name root-helper macht die UID 1030 nicht zur Superuser-Identität. Prüfe die Nummer, nicht einen vielsagenden Namen oder eine angepasste Eingabeaufforderung.
- 5VerbindungIdentität und Anmeldeverlauf beantworten unterschiedliche Fragen
whoamiidentifiziert den aktuellen Benutzer;idergänzt IDs und Gruppen.wholistet aktuelle Anmeldesitzungen auf undwergänzt Aktivität, Laufzeit und Systemlast.lastzeigt aufgezeichnete frühere Anmeldungen und Neustarts. Auf Systemen mit wtmpdb wie Debian 13 verwendest du für diesen Verlaufwtmpdb last. Ein Verlaufseintrag ist nicht die Gruppenliste deiner aktuellen Shell. - 6ErklärungÜber eine zusätzliche Gruppe teilen
Alices primäre Gruppe ist ihre private Gruppe, die ebenfalls alice heißt. Developers ist eine weitere zusätzliche Gruppe. Ein Prozess kann für den Gruppenzugriff sowohl primäre als auch zusätzliche Mitgliedschaften nutzen. Wird ein Bericht developers zugeordnet, kann er daher mit Alice und Bob geteilt werden; eine Zuordnung zu Alices privater Gruppe teilt ihn normalerweise nicht mit Kollegen.
- 7BeispielEinen Bericht developers zuordnen
Der Bericht gehört
bob:developersund hat den Modusrw-r-----. Alice ist nicht seine Eigentümerin, aber ihre Mitgliedschaft in developers wählt dasr--der Gruppe: Sie darf lesen, aber nicht bearbeiten. Chen gehört nicht zu developers und erhält---für Andere. Die zugeordnete Gruppe bestimmt das Team; das mittlere Tripel bestimmt die erlaubten Aktionen des Teams. - 8HerausforderungEine leere Liste mit einem tatsächlichen Mitglied
Ein Kontoeintrag weist Robin die primäre GID 1440 zu. Die Gruppenabfrage liefert
review:x:1440:. Ist Robin trotz des leeren letzten Felds Mitglied von review?---reveal---
Ja. Robins primäre GID stimmt mit der von review überein. Das letzte Gruppenfeld listet zusätzliche Mitglieder auf und muss daher primäre Mitglieder nicht enthalten. Eine vollständige Benutzerabfrage mit
id robinprüft beide Arten der Mitgliedschaft. - 9BeispielDie öffentliche Kontozeile aufteilen
Lies
alice:x:1001:1001:Alice Moreau:/home/alice:/bin/bashals sieben durch Doppelpunkte getrennte Felder. Alice ist der Name, x verweist auf geschützte Passwortdaten, 1001 ist die UID und die nächste 1001 ist die primäre GID. Die übrigen Felder geben einen Kommentar, das Home-Verzeichnis und die Login-Shell an. Der öffentliche passwd-Eintrag enthält nicht Alices lesbares Passwort. - 10ErklärungEin Hash wird geprüft, nicht entschlüsselt
Die shadow-Datei speichert Passworthashes und Felder zum Passwortalter mit eingeschränktem Zugriff. Bei der Anmeldung wird mit dem gespeicherten Verfahren und Salt ein Hash des Passworts gebildet und mit dem gespeicherten Ergebnis verglichen. Unterschiedliche Salts ermöglichen unterschiedliche Hashes für gleiche Passwörter. Ein führendes
!sperrt die Passwortauthentifizierung, entfernt aber nicht jedes andere Anmeldeverfahren. - 11BeispielDie Felder zum Passwortalter lesen
In
alice:$y$j9T$...:20514:0:90:7:::ist Tag 20514 der 2. März 2026. Das Mindestalter 0 erlaubt sofort eine weitere Änderung. Das Höchstalter 90 legt den Ablauf auf den 31. Mai und die Warnfrist 7 beginnt am 24. Mai. Die leeren Felder für Inaktivität und Kontoablauf legen keine dieser Beschränkungen fest. Alle Datumswerte verwenden die Tage seit dem 1. Januar 1970, UTC. - 12HerausforderungPasswortfehler und Identität unterscheiden
Eine Abfrage zeigt ein Konto mit UID 1090, primärer Gruppe 1090 und einem shadow-Hash mit vorangestelltem
!. Ein Teammitglied sagt: „Das Konto ist weg, also ist seine Gruppe nicht mehr wichtig.“ Was ist daran falsch?---reveal---
Das Konto existiert weiterhin mit seiner UID und Gruppe. Das vorangestellte Zeichen sperrt sein Passwort; es löscht nicht seine Identität. Seine Dateien und Gruppenmitgliedschaften haben weiterhin Bedeutung und ein Anmeldeverfahren ohne Passwort kann weiterhin verfügbar sein.
- 13ZusammenfassungDie passenden Angaben wählen
Verwende die aktive Prozessidentität, um zu verstehen, wer handelt. Die Gruppenmitgliedschaft verbindet diese Identität mit gemeinsamen Rechten. Passwd- und group-Einträge beschreiben öffentliche Kontobeziehungen; shadow enthält geschützte Passwortdaten und Daten zum Passwortalter. Frage mit
getentab und verwende Kontoverwaltungsbefehle, wenn Einträge geändert werden müssen.
2Eine Aktion mit erhöhten Rechten ausführen und ihre Richtlinie lesen
13 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungDie administrative Aktion im Blick behalten
- 2ErklärungEine Shell wechseln oder einen Befehl ausführen
- 3TippRechte und vorübergehende Authentifizierung prüfen
- 4HerausforderungWessen Passwort für ein anderes Ziel?
- 5BeispielDas fehlgeschlagene Anhängen verfolgen
- 6BeispielDem schreibenden Programm erhöhte Rechte geben
- 7HerausforderungDen alten Inhalt erhalten
- 8ErklärungEine vollständige Berechtigung lesen
- 9TippEine Regel mit Syntaxprüfung bearbeiten
- 10HerausforderungEine Neustarterlaubnis erlaubt kein Stoppen
- 11KernaussageEin Skript kann eine enge Regel erweitern
- 12HerausforderungRichtlinie und Prozess prüfen
- 13ZusammenfassungDen Umfang auf die Aufgabe begrenzen
3Ein Konto anlegen und Teamzugriff ermöglichen
15 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungEine nutzbare Arbeitsidentität einrichten
- 2BeispielDas Konto ausdrücklich anlegen
- 3ErklärungPasswort und Home-Verzeichnis fertig einrichten
- 4TippDas Ergebnis an drei Stellen prüfen
- 5HerausforderungEin Home-Pfad ohne Home-Verzeichnis
- 6ErklärungEine Passwort- oder Kontoänderung wählen
- 7BeispielDas Passwortalter festlegen, ohne Daten zu verwechseln
- 8HerausforderungBestehende Teammitgliedschaften behalten
- 9ErklärungGruppenmitglieder hinzufügen und entfernen
- 10BeispielDatenbank und Sitzung vergleichen
- 11HerausforderungZuerst die Sitzung, dann die Dateien korrigieren
- 12VerbindungDem Team einen gemeinsamen Ort zum Erstellen geben
- 13KernaussageDas Löschen hinterlässt numerische Eigentumszuordnungen
- 14HerausforderungEin Ausscheiden hat mehrere getrennte Folgen
- 15ZusammenfassungEinträge und Arbeitssitzung prüfen
4Einen Modus lesen und einen Vorgang vorhersagen
17 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungFragen, was der Benutzer tun möchte
- 2BeispielDie Auflistung in Felder zerlegen
- 3ErklärungDas erste zutreffende Tripel auswählen
- 4HerausforderungDie Gruppe setzt den Eigentümer nicht außer Kraft
- 5ErklärungDie Bedeutung von x beim jeweiligen Objekt anwenden
- 6BeispielEinen blockierten Pfad durchgehen
- 7HerausforderungEine schreibgeschützte Datei in einem beschreibbaren Verzeichnis
- 8KernaussageEin Interpreter liest ein Skript
- 9ErklärungRechte einer Klasse hinzufügen, entfernen oder festlegen
- 10Beispiel750 Klasse für Klasse umrechnen
- 11TippVerzeichnisse in einem Baum durchsuchbar halten
- 12HerausforderungEin Recht hinzufügen, ohne den Rest zu ersetzen
- 13ErklärungDie richtigen Identitäten zuweisen
- 14BeispielDen Eigentümer eines Arbeitsverzeichnisses korrigieren
- 15HerausforderungVerschieben oder eine neue Kopie erstellen?
- 16HerausforderungZwischen einer Modus- und einer Eigentümerkorrektur wählen
- 17ZusammenfassungIdentität, Objekt und Aktion verbinden
5Neue Modi steuern und eine verweigerte Anfrage verfolgen
19 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungDen Modus erklären, bevor du ihn änderst
- 2ErklärungMit dem vom Programm angeforderten Modus beginnen
- 3BeispielMaske 027 auf eine Datei anwenden
- 4BeispielDie Abkürzung über Subtraktion prüfen
- 5HerausforderungZwei Ergebnisse der Erstellung vorhersagen
- 6TippKünftige Standardwerte von bestehenden Dateien unterscheiden
- 7ErklärungSonderbits in der Anzeige erkennen
- 8BeispielEin Programm erhält kontrollierte zusätzliche Rechte
- 9BeispielEine neue Datei im Teamverzeichnis verfolgen
- 10ErklärungNamen in einem gemeinsam beschreibbaren Verzeichnis schützen
- 11HerausforderungBearbeiten ohne Löschrecht
- 12TippEin Sonderbit ausdrücklich entfernen
- 13ErklärungVier Diagnosefragen stellen
- 14BeispielZuerst Kenjis Pfad prüfen
- 15BeispielDas fehlende Recht finden
- 16HerausforderungBeim blockierten übergeordneten Verzeichnis anhalten
- 17VerbindungDie Ursache überraschender Ergebnisse prüfen
- 18HerausforderungEin neuer Standardwert und eine bestehende Datei brauchen unterschiedliche Korrekturen
- 19ZusammenfassungDie Berechtigungsmechanismen auseinanderhalten
Linux-Benutzer und Zugriffsrechte: Übungsaufgaben
Set 1: Konten identifizieren und Zugriff steuern10 Übungsfragen
Frage 1 von 10
rescue hat UID 0. Welche administrativen Rechte hat diese Identität?Antwort zeigenAntwort ausblenden
rescue heißt. Namen helfen Menschen, ein Konto zu erkennen; sie bestimmen nicht seine Identität im Kernel. Wer den Namen als Quelle der root-Rechte ansieht, würde ein zweites Konto mit UID 0 übersehen.Frage 2 von 10
design:x:1420:. Bedeutet das leere letzte Feld, dass das Konto nicht zu design gehört?Antwort zeigenAntwort ausblenden
Frage 3 von 10
x in nora:x:1042:1042:Nora:/home/nora:/bin/bash?Antwort zeigenAntwort ausblenden
x verweist bei der Passwortabfrage auf den geschützten shadow-Eintrag. Die übrigen Felder liefern weiterhin die öffentliche UID, primäre GID, das Home-Verzeichnis und die Shell. Die Deutung als leeres Passwort ist falsch: Der Platzhalter verrät nicht, ob das Passwort in shadow verwendbar oder gesperrt ist.Frage 4 von 10
Antwort zeigenAntwort ausblenden
Frage 5 von 10
sudo echo "ready" >> /etc/team-status fehlschlagen, wenn nur root die Datei beschreiben darf?Antwort zeigenAntwort ausblenden
>>, bevor sudo den Befehl ausführt. Erhöhte Rechte für echo erhöhen daher nicht die Rechte des Prozesses, der die Datei öffnet. Ein Ausführungsrecht auf der Zieldatei würde nicht helfen: Das Anhängen braucht ein erfolgreiches Öffnen zum Schreiben, das ein Programm mit erhöhten Rechten wie tee ausführen kann.Frage 6 von 10
Antwort zeigenAntwort ausblenden
-m erstellt das Home-Verzeichnis und kopiert die Vorlagendateien hinein. Die Angabe von -s wählt nur die Login-Shell, selbst wenn diese bei der Anmeldung ein Home-Verzeichnis erwartet. Ein Kontoeintrag kann mit einem Home-Pfad existieren, dessen Verzeichnis nie erstellt wurde.Frage 7 von 10
Antwort zeigenAntwort ausblenden
passwd -e lässt das Passwort ablaufen, sodass bei der nächsten Anmeldung ein neues nötig ist. Das Sperren des Passworts verhindert dagegen dessen Verwendung zur Authentifizierung, statt nur einen Ersatz zu verlangen. Ein vergangenes Kontoablaufdatum würde künftige Anmeldungen am Konto deaktivieren und damit mehr ändern, als Omar braucht.Frage 8 von 10
id lena die Gruppe media, aber id ohne Argumente in Lenas alter Shell nicht. Was sollte Lena tun, bevor sie den Gruppenzugriff erneut versucht?Antwort zeigenAntwort ausblenden
Frage 9 von 10
004 und gehört zu ihrer zugeordneten Gruppe. Welche gewöhnliche Berechtigungsklasse bestimmt seinen Leseversuch?Antwort zeigenAntwort ausblenden
--- die gewöhnliche Prüfung. Das Lesebit für Andere wird nicht hinzugefügt, auch wenn diese Klasse mehr erlaubt. Die Wahl von Andere würde die Tripel fälschlich als kombinierbare Rechte behandeln.Frage 10 von 10
docs. /srv hat root:root und Modus 755, /srv/notes hat root:docs und Modus 750 und a.txt darin hat maya:docs und Modus 440. Kann Tariq die Datei mit gewöhnlichen Rechten lesen und löschen?Antwort zeigenAntwort ausblenden
/srv/notes; dessen Gruppe hat nur Lese- und Ausführungsrecht. Nicht der schreibgeschützte Modus der Datei blockiert das Löschen, sondern das fehlende Schreibbit auf dem Verzeichnis.Set 2: Konten und gemeinsam genutzte Dateien verwalten10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
sudo -u postgres psql unter der standardmäßigen sudo-Authentifizierungsrichtlinie an?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
sudo und editors. Ein Administrator führt usermod -G reviewers mei aus. Wie lautet ihre Liste zusätzlicher Gruppen nach einer erneuten Anmeldung?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
/data/zoe und Bash als Shell. Welcher Befehl fordert alle drei Angaben an?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
audit in records um, ohne ihre GID zu ändern. Was geschieht mit Dateien, die dieser GID zugeordnet sind?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
brief.txt und gehört zu writers, aber nicht zu sales. Welche Gruppenänderung darf sie ohne sudo vornehmen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
rwxr-----?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
/srv/art hat root:artists und Modus 2770. Inez gehört zu artists, hat die primäre Gruppe inez und umask 027. Sie erstellt eine Datei und fordert 666 an. Welche Gruppe und welcher gewöhnliche Modus entstehen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
%ops ALL=(root) /usr/bin/systemctl reload nginx. Welche Aktion berechtigt sie auszuführen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
lab. /srv hat 755, /srv/lab hat root:lab und Modus 740 und seine Datei hat ana:lab und Modus 640. Alle davorliegenden übergeordneten Verzeichnisse sind durchsuchbar. Welche kleinste Änderung an einer Klasse erlaubt Niko, die Datei zu lesen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Modi und Verzeichniszugriff vorhersagen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
check.sh Ausführungsrecht hinzu und behält die anderen Bits bei?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
/srv/box. Sie kennt den genauen Namen einer Datei und diese Datei gibt ihr Leserecht. Was kann sie tun?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
umask 077 ausführt?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
drwxr-S--- über das SGID- und das Ausführungsbit der Gruppe aus?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
ben:ben wird in ein SGID-Teamverzeichnis auf demselben Dateisystem verschoben. Welche Eigentums- und Gruppenzuordnung behält sie?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
/srv/drop hat root:shared und Modus 3770. Dev und Eva sind aktive Mitglieder von shared. Eva erstellt bei umask 002 eine Datei und fordert 666 an. Kann Dev ihre Datei mit gewöhnlichen Rechten bearbeiten und löschen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
chmod -R u=rwX,g=rX,o= tree/?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
root:review und Modus 705. Sam gehört zu review und ist nicht root. Welche Verzeichnisrechte erhält Sam aus den gewöhnlichen Klassen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
x.txt lesen, aber im Verzeichnis mit root:team und Modus 1750 nicht umbenennen; Oli gehört zu team und besitzt x.txt. Welche kleinste Rechteänderung ermöglicht das Umbenennen und behält das Sticky-Bit bei?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Sichere administrative Änderungen wählen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
/etc/sudoers.d/ ein, aber die gültige Regel in release.conf wird nicht angewendet. Welche Änderung des Dateinamens ermöglicht das Lesen dieser Regeldatei?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
draft.txt zu authors?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
pat mit UID 1088 wird gelöscht, während /data/archive dem Eigentümer 1088 zugeordnet bleibt. Ein neues Konto erhält UID 1088. Was erklärt seinen Zugriff auf dieses Archiv als Eigentümer?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
memo in /srv/review lesen, aber nicht bearbeiten. Das Verzeichnis hat root:review und 2750, memo hat jo:review und 640; Rae gehört zu review. Rae muss nur den Inhalt direkt ändern. Welche kleinste Korrektur erfüllt diesen Bedarf?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
chmod 750 team/ aus und erstellt dann ein Unterverzeichnis darin. Welches Verhalten der Sonderbits sollte er erwarten?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
research ist weiterhin Kims primäre Gruppe. Warum verweigert das gewöhnliche groupdel research das Löschen, selbst nachdem Kim aus ihrer Liste zusätzlicher Mitglieder entfernt wurde?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 5: Zugriff über Benutzer und Pfade hinweg verfolgen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
/srv hat 755; /srv/qa hat root:qa und Modus 2710 und result darin hat lee:qa und Modus 640. Alle davorliegenden übergeordneten Verzeichnisse sind durchsuchbar. Kann Uma Namen auflisten, die bekannte Datei lesen und eine neue Datei erstellen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
/var/log/team-run anhängen. Welcher Befehl gibt dem schreibenden Prozess erhöhte Rechte und erhält den bisherigen Inhalt?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
cp ohne weitere Optionen eine gewöhnliche neue Kopie der Datei eines Kollegen. Wem gehört die neue Zieldatei?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
edit. /srv/edit hat root:edit und 2770. Noor kann dort Dateien erstellen, aber eine bestehende Datei mit kai:edit hat 640 und sie kann nichts anhängen. Die Ersteller verwenden Programme, die Modus 666 anfordern. Welche Änderung bei der künftigen Erstellung gewöhnlicher Dateien erlaubt Teammitgliedern das Anhängen, ohne Dateien für Andere zu öffnen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
drwxrwx---, den Eigentümer teo und die Gruppe build. Teo gehört ebenfalls zu build. Welche Klasse wird für Teos gewöhnlichen Zugriff verwendet?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
mira:team und Modus 1770. Ren gehört zu team; Sol besitzt dort einen Eintrag. Wer von Mira und Ren darf Sols Eintrag nach den gewöhnlichen Bits und der Sticky-Regel löschen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
NOPASSWD: /usr/bin/systemctl restart nginx, dann verwendet eine spätere passende Regel PASSWD: für denselben Befehl. Was geschieht bei dieser erlaubten Aktion ohne gültigen Zeitstempel?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
ACL-Kennzeichen
-rw-r-----+ hat ein ACL-Kennzeichen nach den neun gewöhnlichen Rechtepositionen.adduser
adduser bei der Einrichtung Kontodaten ab und erstellt das Home-Verzeichnis des neuen Benutzers.Aktive Gruppen
id ohne Argumente zeigt die aktiven Gruppen in der alten Shell eines Benutzers, bevor er eine neue Anmeldesitzung startet.Angeforderter Erstellungsmodus
Ausführungsrecht
Authentifizierungszeitstempel
sudo -k ungültig.B
Bedingtes Ausführungsrecht
X von chmod, das Ausführungsrecht für Verzeichnisse und Dateien auswählt, die bereits ein Ausführungsbit haben.Benutzer-ID
uid=1051(ava) identifiziert Ava auch dann, wenn ihr Kontoname später geändert wird.Benutzerkonto
Berechtigungsklasse „Andere“
--- ist.Berechtigungsklasse „Eigentümer“
Berechtigungsklasse „Gruppe“
C
chage
chage -l lea, um die Daten zu prüfen, bevor er die Alterseinstellungen des Kontos ändert.chgrp
chgrp editors draft.txt auf seiner eigenen Datei aus.chmod
chmod g+w draft.txt aus, damit die zugeordnete Gruppe seiner Datei den Inhalt des Dokuments ändern kann.chown
chown lea:editors draft.txt, um sowohl den Eigentümer der Datei als auch ihre Gruppe zuzuweisen.D
Defaults-Eintrag
timestamp_timeout=10 legt ein Authentifizierungsintervall von zehn Minuten fest.Durchsuchungsrecht
E
Effektive Benutzer-ID
Einhängeoptionen
G
GECOS-Feld
priya enthält das GECOS-Feld „Priya Shah“, während der Anmeldename das kürzere priya bleibt.Geerbte Maske
gpasswd
gpasswd -a lea editors fügt Lea hinzu, ohne die anderen zusätzlichen Mitglieder der Gruppe editors zu ersetzen.group-Datei
/etc/group speichert Gruppennamen, Passwortplatzhalter, GIDs und Listen der Namen zusätzlicher Mitglieder.groupadd
groupadd bestätigt der Administrator die neue Teamgruppe mit getent group.groupmod
groupmod behält die GID bei, sodass Dateien weiterhin der umbenannten Gruppe zugeordnet werden.Gruppe
editors zugeordnet, kann dieses Team das Gruppenrechtetripel nutzen.Gruppen-ID
Gruppenvererbung
editors sorgt die Gruppenvererbung dafür, dass ein neuer Bericht editors gehört; sein eigener Modus bestimmt aber, ob editors schreiben darf.H
Home-Verzeichnis
/home beginnt./data/lea eingetragenes Home-Verzeichnis muss noch erstellt werden, wenn es nicht bereits existiert.I
Inaktivitätsfrist des Passworts
Interpreter
task.sh über bash task.sh lesen, selbst wenn das Skript kein Ausführungsbit hat.K
Kontoablauf
L
Leserecht
Login-Shell
sudo -i startet eine root-Login-Shell, sodass spätere Befehle in dieser Shell unter der Identität von root laufen.N
namei
-l Eigentümer-, Gruppen- und Rechteinformationen für Komponenten entlang eines Dateipfads zeigt.namei -l, um ein übergeordnetes Verzeichnis zu finden, das den Zugriff auf eine lesbare Datei blockiert.newgrp
newgrp editors aus und prüft die Identität der neuen Shell mit id.nologin-Shell
NOPASSWD-Tag
Numerische Eigentümer- und Gruppenzuordnung
O
Oktaler Modus
rwx, die Gruppe r-x und Andere keine Rechte erhalten.P
passwd-Datei
/etc/passwd, die Namen, IDs, Home-Pfade, Kommentare und Login-Shells speichert./home hat.Passwortablauf
passwd -e löst den Passwortablauf aus, sodass ein Benutzer ein vergebenes vorläufiges Passwort ersetzen muss.Passworthash
Passwortsperre
! im Hash.Primäre Gruppe
mina erhält eine neue Datei außerhalb eines SGID-Verzeichnisses normalerweise diese Gruppe.Prinzip der geringsten Rechte
Private Benutzergruppe
Prozess
R
Rechtetripel
r--, sodass ihre Mitglieder die Datei lesen, aber nicht bearbeiten können.Rekursive Änderung
-R angefordert.root
Runas-Spezifikation
(root) beschränkt eine Wartungsaktion auf die Ausführung unter der root-Identität.S
Salt
Schreibrecht
SGID
shadow-Datei
/etc/shadow, die lokale Passworthashes und Felder zum Kontoalter speichert.Sticky-Bit
/tmp lässt Benutzer temporäre Dateien erstellen, ohne dass sie die Einträge anderer entfernen können.su
su - bob aus, um Bobs Anmeldeumgebung zu starten, und gibt anschließend exit ein, um zur eigenen Shell zurückzukehren.sudo
sudo für einen Dienstneustart aus und bearbeitet anschließend seine eigenen Projektdateien ohne erhöhte Rechte.sudoers-Richtlinie
SUID
Symbolischer Modus
g+w zum Hinzufügen von Schreibrecht für die Gruppe.go-w entfernt das Schreibrecht für Gruppe und Andere und behält ihre übrigen Rechte bei.Systemkonto
www-data ermöglicht einem Webdienst, ohne das reguläre Konto einer Person zu laufen.U
umask
Umleitung
>>.sudo echo startet, weil die gewöhnliche Shell die geschützte Datei öffnet.useradd
useradd mit -m und -s aus, um ein Home-Verzeichnis zu erstellen und eine Login-Shell zu wählen.usermod
-a zu usermod -G behält frühere zusätzliche Mitgliedschaften bei und fügt eine neue hinzu.V
Verschieben innerhalb desselben Dateisystems
Verwaiste Datei
Verzeichniseintrag
visudo
visudo für eine Team-Richtliniendatei aus, damit ein Tippfehler vor dem Speichern erkannt wird.Vorlagenverzeichnis
/etc/skel..bash_aliases für danach erstellte Konten zum Vorlagenverzeichnis hinzu.Z
Ziffer für Sonderrechte
Zurechenbarkeit
Zurücksetzen von Bits
Zusätzliche Gruppe
design lässt einen Benutzer die Rechte von design auf gemeinsam genutzten Dateien nutzen.Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.