Aufgabe 06 - Benutzer, Gruppen und Rechte
Aufgabe 06 - Benutzer, Gruppen und Rechte
Abschnitt betitelt „Aufgabe 06 - Benutzer, Gruppen und Rechte“Worum geht es?
Abschnitt betitelt „Worum geht es?“Sie arbeiten sich in das Rechtesystem von Linux ein und wenden das Prinzip der geringsten Rechte auf Ihren eigenen Server an (siehe Kapitel Server aufsetzen und härten). Das Ziel ist nicht, dass etwas funktioniert. Das erreicht man mit chmod 777 in fünf Sekunden. Das Ziel ist, dass Sie zu jeder Datei sagen können, welcher Benutzer welches Recht darauf braucht und warum.
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel Server aufsetzen und härten, Abschnitte Benutzer, Gruppen und Rechte sowie Weniger Rechte, weniger Schaden.
- Ihren gehärteten Server aus Aufgabe 05.
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie setzen Eigentümer und Rechte gezielt und grenzen ein
Permission deniedsystematisch ein. - Sie erklären das Prinzip der geringsten Rechte und weisen es an den Diensten Ihres Servers nach.
- Sie schätzen ab, welchen Schaden ein übernommener Dienst anrichten könnte.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: Rechte lesen, setzen und Kennungen anlegen (Teil A).
- Reorganisation und Transfer: ein Rechteproblem ohne
chmod 777eingrenzen und lösen (Teil B). - Reflexion, Problemlösung und Urteilsbildung: die Kennungen der laufenden Dienste beurteilen (Teil C).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei Stunden ausgelegt.
Teil A - Rechte lesen und setzen
Abschnitt betitelt „Teil A - Rechte lesen und setzen“-
Legen Sie das Verzeichnis
~/uebungen/06/an und darin drei Dateien mit beliebigem Inhalt:oeffentlich.txt,intern.txtundgeheim.txt. -
Setzen Sie die Rechte so, dass
oeffentlich.txtvon allen gelesen werden darf,intern.txtvon Eigentümer und Gruppe, undgeheim.txtnur vom Eigentümer gelesen und geschrieben werden darf. Notieren Sie zu jeder Datei den verwendeten Zahlenwert und die Zeile ausls -l. -
Übersetzen Sie fünf Rechteangaben in Worte und in ihren Zahlenwert. Schreiben Sie für jede auf, was Eigentümer, Gruppe und alle anderen jeweils dürfen:
-rw-r--r--,-rw-r-----,-rwxr-x---,drwxr-xr-x,-rw-------. -
Legen Sie mit
sudo groupadd projekteine Gruppe an und nehmen Sie Ihre Arbeitskennung mitsudo usermod -aG projekt deployhinein. Rufen Sie danachidauf. Die neue Gruppe fehlt dort noch. Melden Sie sich ab und wieder an, rufen Sieiderneut auf und erklären Sie in zwei Sätzen, warum sie jetzt erscheint. -
Rufen Sie
whoami,idundsudo -u www-data idauf. Notieren Sie die drei Ausgaben und schreiben Sie in einem Satz dazu, was der dritte Befehl tut.
Teil B - Verzeichnisrechte und ein Permission denied
Abschnitt betitelt „Teil B - Verzeichnisrechte und ein Permission denied“-
Legen Sie das Verzeichnis
~/uebungen/06/kasten/an und darin eine Dateidatei.txt. Entziehen Sie danach dem Verzeichnis das Rechtxfür alle mitchmod 600 kasten. -
Versuchen Sie drei Operationen und notieren Sie zu jeder die Meldung, die Sie bekommen: das Verzeichnis auflisten (
ls kasten), hineinwechseln (cd kasten), die Datei lesen (cat kasten/datei.txt). -
Erklären Sie in vier bis fünf Sätzen, was
rundxbei einem Verzeichnis jeweils erlauben, und ordnen Sie jeder der drei Operationen aus Punkt 2 das Recht zu, das ihr gefehlt hat. Stellen Sie danach mitchmod 755 kastenden brauchbaren Zustand wieder her. -
Legen Sie mit
sudodas Verzeichnis/srv/projekt/an, das der Kennungdeployund der Gruppeprojektgehört, und darin eine Dateiconfig.envmit einem erfundenen Wert. -
Bauen Sie einen Fehler ein: Setzen Sie Eigentümer oder Rechte so, dass der Zugriff unter einer anderen Kennung scheitert. Rufen Sie danach
sudo -u www-data cat /srv/projekt/config.envauf und notieren Sie die Meldung. -
Grenzen Sie den Fehler in vier Schritten ein und notieren Sie zu jedem Befehl und Ergebnis. Erstens: Unter welcher Kennung arbeite ich (
id)? Zweitens: Wem gehört die Datei und welche Rechte hat sie (ls -l)? Drittens: Wem gehören die Verzeichnisse auf dem Weg dorthin, also/srvund/srv/projekt(ls -ld)? Viertens: Welches Recht fehlt genau, und an welcher Stelle des Pfades? -
Beheben Sie den Fehler mit einem
chownund einemchmod. Notieren Sie beide Befehle und begründen Sie den gewählten Zahlenwert in einem Satz. -
Beschreiben Sie in drei bis vier Sätzen, was
chmod 777an dieser Stelle bewirkt hätte. Nennen Sie dabei, welches Symptom verschwunden wäre und welche Kennungen des Systems danach Zugriff auf die Datei mit den Zugangsdaten gehabt hätten.
Teil C - Wer läuft hier als wer
Abschnitt betitelt „Teil C - Wer läuft hier als wer“-
Erstellen Sie eine Übersicht aller laufenden Dienste mit ihrer Kennung. Ein möglicher Weg führt über
systemctl list-units --type=service --state=runningin Verbindung mitps -eo user,comm --sort=user. Notieren Sie den Weg, den Sie gewählt haben. -
Markieren Sie in der Übersicht jeden Dienst, der als
rootläuft. Wählen Sie zwei davon aus und beantworten Sie zu jedem in zwei bis drei Sätzen, ob er die Rechte vonroottatsächlich braucht. Begründen Sie mit dem, was der Dienst tut, etwa dem Öffnen eines Ports unter 1024 oder dem Zugriff auf Gerätedateien. -
Wählen Sie einen Dienst aus, der unter einer eigenen Kennung läuft, zum Beispiel
www-dataoderpostgres. Beschreiben Sie in fünf bis sechs Sätzen, was jemand erreichen könnte, der genau diesen Dienst übernimmt. Gehen Sie drei Fragen durch: Auf welche Verzeichnisse käme er, welche Dateien könnte er lesen, welche verändern? Beantworten Sie dieselben drei Fragen anschließend für den Fall, dass derselbe Dienst alsrootliefe. -
Prüfen Sie mit
getent group sudo, welche Kennungensudoverwenden dürfen. Vergleichen Sie das Ergebnis mit Ihrer Absicht aus Aufgabe 05 und notieren Sie Abweichungen. -
Tragen Sie die Ergebnisse der Punkte 2 bis 4 als Abschnitt Rechte und Kennungen in
docs/haertung.mdein, jeweils mit dem Befehl, aus dem Sie die Angabe gewonnen haben.
Wissenscheck
Abschnitt betitelt „Wissenscheck“- Was bedeuten die Rechte
-rw-r-----für Eigentümer, Gruppe und alle anderen, und welcher Zahlenwert gehört dazu? - Was bedeutet das Recht
xbei einem Verzeichnis, und welche Operation braucht es? - Warum kann ein
Permission deniedan einem Verzeichnis der Kette liegen und nicht an der Datei selbst? - Warum löst
chmod 777nichts, sondern tauscht ein Problem gegen ein anderes? - Was besagt das Prinzip der geringsten Rechte, und wie zeigt es sich an einem Webserver, der als
www-dataläuft? - Warum arbeitet man unter einer normalen Kennung mit
sudostatt direkt alsroot? Nennen Sie beide Gründe. - Warum ist jedes zusätzlich installierte Paket eine zusätzliche Stelle, die Sicherheitsupdates braucht?
Eine Datei protokoll.md mit den Teilen A und B, jeweils mit Befehl und Ausgabe, dazu der Eingrenzung aus Teil B Punkt 6 in ihren vier Schritten. Der Abschnitt Rechte und Kennungen mit der Dienstübersicht und der Schadensabschätzung steht in docs/haertung.md. Die Eingriffe dieser Übung sind in docs/betrieb.md eingetragen.