Nutzer und Gruppen

Nutzer und Gruppen in einem Debian-System

Wie in anderen Sytemen auch gibt es in Debian Nutzer und Gruppen.

Ein Nutzer kann (und das tut er meistens auch) mehreren Gruppen zugehören. Eine Gruppe kann mehrere Mitglieder haben.

Jede Datei und jedes Verzeichnis sind einem Nutzer und einer Gruppe zugeordnet.

Wir nehmen mal wieder das Beispiel mit Kay und Steffi.

Bereits nach der Neuinstallation gibt es 2 Nutzer: Kay und root. Kay darf den Rechner nutzen, und root darf das System verändern.

Es sind auch schon eine Menge Gruppen vorhanden, sonst könnte Kay nichts auf dem Bildschirm sehen oder keine Musik hören. Deshalb ist Kay bereits Mitglied der Gruppe video und der Gruppe audio.

In welchen Gruppen man Mitglied ist, erfährt man mit:

groups

Alle Dateien und Ordner in Kays Heimatverzeichnis gehören dem Nutzer kay und der Gruppe kay. Alle anderen Dateien und Verzeichnisse gehören mit Ausnahmen den Nutzer root und der Gruppe root.

Zu jedem Nutzer und jeder Gruppe gibt es eine Identifikationsnummer, die sogenannte ID. Nutzer erhalten eine uid und Gruppen eine gid. Auch diese kann man sich anzeigen lassen:

id

Kay, der als erster Benutzer angelegt wurde hat die uid 1000. root hat die uid 0.

Des weiteren gibt es Gruppen names kay und root. Die gid entsprechen der uid der Benutzer.

Der Administrator legt nun den Benutzer Steffi an. Automatisch wird eine Gruppe steffi angelegt. uid und gid erhalten den Wert 1001.

Werte unter 1000 sind systemrelevant, Werte ab 1000 sind reellen Nutzern zugeordnet.

Probleme mit Nutzer und Gruppen

Was ich hier beschreibe, sind keine Probleme von Debian. Es sind einfach nur Fakten, die auftreten können. Ein Administrator sollte immer auf die "gewisse Ordnung" achten. Und dazu gehört Zeit und Nerven.

Ich wollte hier schon Lösungen anbieten, aber es ist zu früh, um solche Maßnahmen durchzuführen.

Probleme im Netzwerk

Beispiel: Kay kauft sich ein Raspberry Pi. Er bringt dieses prima zum Laufen mit Netzwerk und allem anderen.

Nun will Kay die Daten auf dem Raspberry Pi über das Netzwerk auf seinem Rechner einhängen, was kein Problem ist.

Kay hat auf seinem Rechner die uid von 1000. Auf dem Raspberry Pi hat er die uid von 1001, da der erste Nutzer vom Raspberry Pi "pi" mit der uid 1000 ist. Bei gewissen Netzwerken kann es deshalb passieren, dass Kay keine Zugriffsrechte auf seine Dateien auf dem Raspberry Pi hat.

Datenrücksicherungen

Kay und Steffi haben immer vorbildlich eine Datensicherung ihrer Dateien gemacht. Kay kauft sich eine neue Festplatte und baut diese in den Computer ein. Der Administrator setzt ein neues Debian-System auf.

Allerdings macht der Administrator dieses mal etwas anders, er legt erst den Benutzer Steffi und dann den Benutzer Kay an. Somit sind uid und gid gegenüber vorher vertauscht. Beide haben nun keinen Zugriff auf ihre gesicherten Daten.

Dem Administrator sollte man nun einen Kaffee anbieten. Er muss jetzt bei den gesicherten Daten die Nutzer- und Gruppenzugehörigkeit anpassen.

Dateien und ihre Dateimodusbits

Jede Datei und jedes Verzeichnis besitzen Dateimodusbits. Oft wird hier auch von "Markierungen" oder "Attributen" gesprochen. Die Dateimodusbits legen fest, wer welchen Zugriff auf die Datei hat.

Es gibt Dateimodusbits fürn den Nutzer (user), für die Gruppe (group) und für alle anderen (a). Für jeden dieser Bereiche gibt es ein Bit für das Lesen (r wie read), Schreiben (w wie write) und Ausführen (x von execute). Es gibt noch weitere Bits, die ich hier nicht erläutere.

Welche Dateimodusbits einer Datei gesetzt sind, kann man mit folgendem Befehl abfragen.

ls -l

Als Ausgabe sollte sowas erscheinen:

drwxr-xr-x 5 kay kay 4096 Dez 19 15:11  ordner
-rw-r----- 1 kay kay 12543 Dez 20 19:31  textdatei.txt

Ganz links stehen die Dateimodusbits. Als erstes kommt in der Regel ein d (directory, Verzeichnis) oder ein - (kein Verzeichnis, also eine Datei)

Es folgen 3 Zeichen für den Eigentümer, dann 3 Zeichen für die Besitzergruppe und weitere 3 Zeichen für alle anderen. Diese bedeuten meist:

r

read, Datei oder Verzeichnis darf gelesen werden.

w

write, Datei oder Verzeichnis darf geschrieben und gelöscht werden.

x

execute, Datei darf ausgeführt werden.

Bei einem Verzeichnis bedeutet das x, dass das Verzeichnis durchsucht und mit cd betreten werden darf.

Kay darf in dem Verzeichnis "ordner" alles, andere dürfen nur suchen und lesen.

Die Datei "textdatei.txt" darf vom Nutzer kay gelesen und geschrieben werden, von der Gruppe kay nur gelesen werden. Alle anderen dürfen nichts.

Setzen des Eigentümers und der Eigentümergruppe einer Datei

chown (change owner) heißt das Tool zum Setzen von Eigentümer einer Datei oder eines Verzeichnisses.

Beispiel: Kay hat eine Datei namens Bild.png bekommen, auf die er Zugriff hat. Kay möchte das Bild bearbeiten können, Steffi soll es sich ansehen dürfen.

Kay muss deshalb sich als Eigentümer und die Gruppe steffi ale Eigentümergruppe setzen:

chown kay:steffi Bild.png

Kontrolle:

ls -lh

Zugriffsrechte einer Datei setzen

Hierzu dient das Tool chmod (change modus).

Kay muss nun die Zugriffsrechte der Datei bild.png anpassen. Als erstes entzieht er allen anderen alle Rechte:

chmod a-x Bild.png
chmod a-w Bild.png
chmod a-r Bild.png

Als nächstes gibt er der Gruppe Steffi Leserechte:

chmod g-x Bild.png
chmod g-w Bild.png
chmod g+r Bild.png

Sich selbst setzt er Lese- und Schreibrechte:

chmod u-x Bild.png
chmod u+w Bild.png
chmod u+r Bild.png

Kay war schon immer ein wenig umständlich. Er hätte auch alles mit einem einzigen Befehl machen können:

chmod 0640 Bild.png

chmod lässt sich mit einer Oktalzahl (Ziffern von 0 bis 7) aufrufen. Die erste Ziffer ist mit Ausnahmen eine 0. Die zweite Ziffer setzt Bits für den Eigentümer, die dritte Ziffer Bits für die Eigentümergruppe und die vierte Ziffer Bits für alle anderen. Die Ziffern bedeuten:

0

Keine Rechte.

1

Datei darf ausgeführt werden. Das macht aber keinen Sinn, da die Datei nicht gelesen werden darf.

2

Datei darf geschrieben werden.

3

2 + 1, Datei darf geschrieben und ausgeführt werden.

4

Datei darf gelesen werden.

5

4 + 1, Datei darf gelesen und ausgeführt werden.

6

4 + 2, Datei darf gelesen und geschrieben werden.

7

4 + 2 + 1, Datei darf gelesen, geschrieben und ausgeführt werden.

Da war doch noch was mit den Urlaubsbildern

Kay hat ja die 1483 Urlaubsbilder im Ordner ~/Bilder/2019/Ägypten/ gespeichert. Steffi soll sie sich ansehen können. Er kann die eben dargestellte Sache 1484 mal durchführen, 1 mal für den Ordner, 1483 mal für die Bilder. Oder er macht es sich einfacher:

chown -R kay::steffi ~/Bilder/2019/Ägypten/
chmod -R 0440 ~/Bilder/2019/Agypten/
chmod ug+x ~/Bilder/2019/Ägypten/

Fertig. Die Option -R steht für rekursiv, es werden alle Elemente innerhalb des Verzeichnisses mit einbezogen. Kay hat die Bilder für sich selbst schreibgeschützt gesetzt, damit er sie nicht ausversehen löschen kann. Die letzte Anweisung setzt das x-Bit nur für das Verzeichnis, damit es mit cd betreten und durchsucht werden darf. Anschließend kontrolliert Kay, ob alles so ist, wie er es sich gedacht hat:

ls -lh ~/Bilder/2019/
ls -lh ~/Bilder/2019/Agypten/

Nachwort

Erstellt Euch ruhig mal eins zwei Dateien und spielt mit diesen herum. Die Nutzer- und Gruppenverwaltung sollte grundlegen verstanden sein, bevor es hier weiter geht. Ändert aber nicht den Eigentümer dieser Dateien auf jemanden anderes als Euch selbst, sonst habt Ihr keinen Zugriff mehr auf diese Dateien, da braucht Ihr dann Root-Rechte, um wieder alles gerade zu rücken.

Das sicherste System nützt nichts, wenn fahrlässig damit umgegangen wird. Hier bräuchten wir ein "Du-darfst-nichts-System", was wir nicht haben wollen. In den meisten Fällen ist es der Mensch, de gehackt wird, nicht die Software. Auf jeden bunten Link muss erst mal geklickt werden. Bitte benutzt einfach den gesunden Menschenverstand.

Habt Ihr ein Verzeichnis oder eine Datei erstellt, auf die wirklich nur Ihr selbst Zugriff haben wollt, passt Euch sofort die Dateimodusbits an. Ein chmod 0700 meinVerzeichnis oder ein chmod 0600 meineDatei ist kein Hexenwerk, wenn man regelmäßig damit arbeitet.

Kopiert Ihr Euch Daten von einem USB-Stick in Euer Heimatverzeichnis, kontrolliert sofort die Dateimodusbits. Nicht selten kommt es vor, dass diese Daten für alle komplett zugänglich sind. Andere Systeme benutzen andere Mechanismen, um Daten zu schützen.

Falls vorhanden, empfehle ich Euch, die Dateien .bashrc und .bash_aliases in Eurem Heimatverzeichnis schreibgeschützt zu setzen. Das sind Dateien, die beim Start eines Terminals oder beim Anmelden in einer Konsole ausgeführt werden. Hier könnten böse Mails Zugriff haben.

ls -lha ~
chmod a-w ~/.bashrc ~/.bash_aliases
ls -lha ~

Irgendwann kommen wir zu den Root-Rechten, da muss die Benutzerverwaltung sitzen.

Grafische Dateimanager ,wie Dolphin, Thunar und viele andere, besitzen auch Möglichkeiten, die Dateimodusbits zu ändern. Wenn Ihr diese Seite verstanden habt, solltet Ihr das dort spielerisch hinbekommen.