Die Gehaltsliste, die alle öffnen konnten
Eine kleine Firma legt ihre Gehaltsliste auf einem gemeinsamen Server ab. Ein neuer Kollege öffnet den Ordner und findet sie. Jeder mit einem Login kann alle Gehälter lesen.
Niemand hat etwas gehackt. Die Datei hatte nur die falschen Rechte. In dieser Lektion lernen Sie, sie richtig zu setzen.
Am Ende dieser Lektion
Notiz
Ich kann sagen, wer eine Datei lesen, ändern oder ausführen darf, und ich kann das ändern.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Besitzer | der eine Nutzer, dem eine Datei gehört | |
| Gruppe | eine benannte Liste von Nutzern, die Dateien teilen | |
| Andere | alle, die weder Besitzer noch in der Gruppe sind | |
| Root | das Administratorkonto, das alles darf | |
| sudo | führt einen einzelnen Befehl als root aus | sudo whoami |
| Setgid | eine Ordnereinstellung: neue Dateien gehören der Gruppe des Ordners | 2750 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Drei Arten von Personen, drei Rechte
Jede Datei hat einen Besitzer und eine Gruppe. Alle anderen sind Andere.
Für jede dieser drei Arten legt die Datei fest, wer sie lesen (r), schreiben (w) und ausführen (x) darf.
Bei einem Ordner heißt r: auflisten. w heißt: Dateien anlegen oder löschen. x heißt: hineingehen.
Wer bin ich?
idHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Modus, Besitzer und Gruppe eines Ordners lesen
stat -c "%a %A %U %G" /srv/projectsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein Beispiel: einen Modus lesen
| Modus | Besitzer darf | Gruppe darf | Andere dürfen |
|---|---|---|---|
| rwxr-x--- | lesen, schreiben, ausführen | lesen, ausführen | nichts |
| rw-rw-r-- | lesen, schreiben | lesen, schreiben | lesen |
| rw------- | lesen, schreiben | nichts | nichts |
| rwxr-xr-x | lesen, schreiben, ausführen | lesen, ausführen | lesen, ausführen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
chmod ändert einen Modus
chmod ändert den Modus. Sie können drei Ziffern angeben, zum Beispiel chmod 640 gehaelter.txt.
Oder Sie sagen, was dazukommt oder wegfällt. g+w fügt der Gruppe Schreiben hinzu. o-r nimmt Anderen das Lesen.
Führen Sie die nächsten Befehle der Reihe nach aus. Jedes ls -l zeigt den neuen Modus.
Eine leere Datei anlegen
touch gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Besitzer lesen und schreiben, Gruppe lesen
chmod 640 gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Modus ansehen
ls -l gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Der Gruppe auch Schreiben erlauben
chmod g+w gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Noch einmal ansehen
ls -l gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele halten chmod 777 für eine schnelle Lösung, wenn „Permission denied“ erscheint. Damit darf jeder Nutzer der Maschine die Datei ändern. Klären Sie, wer das Recht braucht, und geben Sie es nur diesem Besitzer oder dieser Gruppe.
Nutzer, root und sudo
Jede Person und jeder Dienst hat ein Nutzerkonto. Ein gewöhnlicher Nutzer öffnet die Datei eines anderen nur, wenn ihr Modus es erlaubt. Die Dateien des Systems kann er nicht ändern.
Root darf alles. Niemand sollte den ganzen Tag als root arbeiten. sudo führt nur einen Befehl als root aus, danach sind Sie wieder ein gewöhnlicher Nutzer.
Ein gewöhnlicher Nutzer wird abgewiesen
ls /rootHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Derselbe Nutzer mit sudo
sudo whoamiHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Datei an root geben
sudo chown root gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Besitzer ansehen
ls -l gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Sie zurückgeben
sudo chown student gehaelter.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein gemeinsamer Ordner braucht Gruppe und Setgid
Ein Team teilt sich einen Ordner. Legen Sie eine Gruppe an, zum Beispiel vertrieb, und nehmen Sie jedes Mitglied mit usermod -aG vertrieb name auf.
Setzen Sie die Gruppe des Ordners mit chgrp. Wählen Sie dann, was die Gruppe darf.
Fügen Sie das Setgid-Recht hinzu, die 2 in 2750. Jede neue Datei im Ordner gehört dann der Gruppe des Ordners, egal wer sie anlegt.
Einen Übungsordner anlegen
mkdir -p teamordnerHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Setgid, Gruppe darf lesen und hinein, Andere nichts
chmod 2750 teamordnerHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Nach dem s suchen
ls -ld teamordnerHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.