Linux Gruppen und Berechtigungen einfach erklärt
In einem Linux-System sind Berechtigungen und Gruppen wichtig, um die Sicherheit und Ordnung der Systemressourcen zu gewährleisten. Sie erlauben den Administratoren, zu kontrollieren, wer auf welche Dateien und Verzeichnisse zugreifen kann.
Linux-Benutzer und -Gruppen
Jedes Linux-System hat mehrere Benutzer. Ein Benutzer ist jemand, der auf das System zugreift. Ein Benutzer kann eine Person sein oder ein Systemdienst sein. Benutzer können auch in Gruppen organisiert werden. Eine Gruppe ist einfach eine Sammlung von mehreren Benutzern. Das organisieren von Benutzern in Gruppen erleichtert die Verwaltung der Berechtigungen.
Um die vorhandenen Benutzer zu sehen, kann man den Befehl
verwenden. Gruppen können mit cut -d: -f1 /etc/passwd
cat /etc/group
betrachtet werden.
Gruppen in Linux sind eine effektive Möglichkeit, Berechtigungen zu verwalten und die Sicherheit zu verbessern. Indem Benutzer, die ähnliche Rollen oder Funktionen haben, in derselben Gruppe zusammengefasst werden, können Administratoren Berechtigungen effektiv verwalten und die Exposition von sensiblen Ressourcen minimieren.
Gruppen und Benutzer hinzufügen und entfernen
Mit dem Befehl adduser benutzer
erstellt Ihr einen Benutzer mit eigenen Homeverzeichnis. Der Benutzer wird der Gruppe users hinzugefügt.
mit userdel benutzer
könnt Ihr einen Benutzer auch wieder löschen.
Benutzern einer Gruppe hinzufügen. Ihr könnt Benutzer auch einer Gruppe hinzufügen. Seid Ihr aber bitte vorsichtig, den sobald Ihr einen neuen Benutzer der Gruppe sudo hinzufügt, hat dieser Benutzer vollständigen Zugriff auf das komplette System, soll der Benutzer z.B nur änderungen am webserver vornehmen, kann man einen neuen Benutzer z.B nur der Gruppe www-data hinzufügen. Das würde dann so aussehen:
sudo usermod -aG www-data benutzer
Soll der Benutzer auch ssh Berechtigungen haben, muss er in die ssh Gruppe:
sudo usermod -aG ssh benutzer
Berechtigungen und das oktale System
In Linux wird häufig das oktale (Basis-8) System verwendet, um Dateiberechtigungen zu ändern. Jede der drei Berechtigungen (lesen, schreiben, ausführen) wird als Bit in einer binären Zahl betrachtet.
- Lesen (r) ist Bitwert 4
- Schreiben (w) ist Bitwert 2
- Ausführen (x) ist Bitwert 1
Diese Werte werden addiert, um die Gesamtberechtigung für eine Datei oder ein Verzeichnis zu bestimmen.
Zum Beispiel bedeutet eine oktale Berechtigung von 7 (4+2+1) volle Berechtigungen (lesen, schreiben, ausführen). Eine Berechtigung von 5 (4+0+1) bedeutet lesen und ausführen, aber nicht schreiben.
Oktale Berechtigungsübersicht
- 0: Keine Berechtigungen
- 1: Nur Ausführung (x)
- 2: Nur Schreiben (w)
- 3: Schreiben und Ausführen (wx)
- 4: Nur Lesen (r)
- 5: Lesen und Ausführen (rx)
- 6: Lesen und Schreiben (rw)
- 7: Lesen, Schreiben und Ausführen (rwx)
oder vereinfacht dargestellt:
- 0 = ---
- 1 = --x
- 2 = -w-
- 3 = -wx
- 4 = r-
- 5 = r-x
- 6 = rw-
- 7 = rwx
Der Befehle ls -l
zeigt die Berechtigungen für Dateien und Verzeichnisse an. Zum Beispiel könnte die Ausgabe so aussehen:
-rwxrwxr-x 1 benutzer gruppe 4096 Mai 20 12:34 beispiel.txt
In diesem Beispiel hat "benutzer" Lese-, Schreib- und Ausführungsberechtigungen. Die "gruppe" hat auch Lese-, Schreib- und Ausführungsberechtigungen. Alle anderen Benutzer haben nur Lese- und Ausführungsberechtigungen.
Hier ist eine Aufschlüsselung der Ausgabe:
- -rwxrwxr-x: Dies sind die Berechtigungen für die Datei. Die ersten zehn Zeichen sind immer für die Berechtigungen reserviert.
- Das erste Zeichen gibt den Dateityp an. Ein "-" bedeutet, dass es sich um eine normale Datei handelt. Ein "d" würde darauf hinweisen, dass es sich um ein Verzeichnis handelt.
- Die nächsten neun Zeichen sind in drei Gruppen von drei Zeichen aufgeteilt. Jede Gruppe repräsentiert die Berechtigungen für den Eigentümer, die Gruppe und andere Benutzer. In diesem Fall hat der Eigentümer Lese-, Schreib- und Ausführungsrechte (rwx), die Gruppe hat auch Lese-, Schreib- und Ausführungsrechte (rwx), und andere Benutzer haben Lese- und Ausführungsrechte (r-x).
- 1: Dies ist die Anzahl der Links (oder Referenzen) zu dieser Datei oder diesem Verzeichnis. Bei Dateien ist diese Zahl normalerweise 1, es sei denn, es wurden Hard Links erstellt. Bei Verzeichnissen entspricht sie der Anzahl der Unterordner + 2 (eins für das Verzeichnis selbst und eins für das übergeordnete Verzeichnis).
- benutzer: Dies ist der Benutzer (oder der Eigentümer) der Datei. In diesem Fall ist der Benutzername "benutzer".
- gruppe: Dies ist die Gruppe, der die Datei gehört. In diesem Fall ist der Gruppenname "gruppe".
- 4096: Dies ist die Größe der Datei in Bytes. In diesem Fall beträgt die Dateigröße 4096 Bytes.
- Mai 20 12:34: Dies ist das Datum und die Uhrzeit der letzten Modifikation der Datei. In diesem Fall wurde die Datei zuletzt am 20. Mai um 12:34 Uhr geändert.
- beispiel.txt: Dies ist der Name der Datei. In diesem Fall lautet der Dateiname "beispiel.txt".
Mit dem Befehl chmod könnt ihr die Berechtigungen für Besitzer/Benutzer, Gruppe und alle anderen verändern. Für den chmod
Befehl geben drei Ziffern die Berechtigungen für den Besitzer, die Gruppe und andere Benutzer an. Zum Beispiel:
chmod 755 beispiel.txt
In diesem Fall gibt das erste Ziffer (7) die Berechtigungen des Besitzers an (lesen, schreiben, ausführen). Die zweite Ziffer (5) gibt die Berechtigungen der Gruppe an (lesen und ausführen), und die dritte Ziffer (5) gibt die Berechtigungen für andere Benutzer an (ebenfalls lesen und ausführen).
mit ls -l
würde beispiel text mit chmod 755 so aussehen:
-rwxrw-rw- 1 benutzer gruppe 4096 Mai 20 12:34 beispiel.txt
Darf nur der Besitzer der Datei die Datei lesen, Gruppen und andere hingegen nicht würde der Befehl zur änderung der Datei so aus:
chmod 700 beispiel.txt
und ls -l
würde folgendes ausgeben:
-rwx------ 1 benutzer gruppe 4096 Mai 20 12:34 beispiel.txt
Die chown
- und chmod
Befehle sind die Hauptwerkzeuge für diese Aufgabe, aber es ist auch wichtig, die Konzepte hinter Benutzer- und Gruppenberechtigungen zu verstehen. Unangemessene Berechtigungen können nicht nur zu Sicherheitsproblemen führen, sondern auch dazu, dass Dienste nicht richtig funktionieren, wenn sie nicht auf die benötigten Ressourcen zugreifen können.
Wollt Ihr die Berechtigungen für Ordner und Unterordner inkl Inhalt aller darin befindlichen Dateien verändern muss mit die Flagge -R hinzugefügt werden. Soll z.B für den neu angelegten Webpage Ordner im Verzeichnis /var/www/webpage geändert werden (z.B) eine WordPressinstallation, so lautet der Befehl:
chown -R www-data:www-data /var/www/webpage
Besitzer ist nun www-data und der dazugehörigen Gruppe www-data ebenso sämtlicher Ordner und Dateien im Ordner webpage. Soll nun nur der Benutzer/Besitzer Vollzugriff, die Gruppe www-data lesen und ausführen können, sowie alle anderen die nicht der Gruppe angehören, lesen und ausführen können, so sieht das dann folgendermassen aus:
chmod -R 755 /var/www/webpage
Zusammenfassend lässt sich sagen, dass die Verwaltung von Berechtigungen und Gruppen in Linux ein wichtiges Thema ist, das sowohl technisches Wissen als auch sorgfältiges Urteilsvermögen erfordert. Es ist ein Bereich, der sowohl für die allgemeine Systemverwaltung als auch für die Sicherheit von entscheidender Bedeutung ist.
Das Thema haben wir nun eher oberflächlich angeschnitten, es gibt noch viel mehr zum Thema Berechtigungen zu wissen, auch gibt es Spezialberechtigungen und andere Systeme, wie man Berechtigungen wiedergibt, anzeigt bzw geändert werden können.
Falls Ihr mehr zum Thema wissen wollt, könnt Ihr gerne z.B die Seite https://wiki.ubuntuusers.de/Rechte/ besuchen. Auch findet sich im Internet sehr viel mehr Info zum ganzen Thema. Mein Anliegen war es hier einfaches und gebündeltes Wissen über das Thema Gruppen und Berechtigungen zu vermittlen. Falls Ihr Fragen habt, schreibt sie in die Kommentare!