Nach oben

Benutzer und Gruppen richtig definieren.

Inhaltsverezeichnis



Benutzer und Gruppen

Benutzer und Gruppen werden in Linux, wie auch in Windows definiert. In Windows wird das beruflich meistens via Active Directory (AD)1 definiert. In Linux sieht die Welt etwas anders aus.
Doch wie auch immer - die meisten haben sehr viel Mühe mit Benutzer und Gruppen umzugehen. Das liegt daran, dass man sich nicht abmelden möchte oder sich nicht mit einem anderen Benutzer anmelden möchte. Der eigene Benutzer soll alles können, was man «für seine Areit» braucht, ohne das man sich ständig anmelden oder wieder authentisieren muss. Und genau hier liegt der Hund begraben. Die Benutzer können zu viel.

Wie viel soll ein Benutzer können?

Ein normaler Benutzer braucht nicht wirklich viel. Wenn er zu viel kann, ist das shclecht für das Geschäft! Man muss sich immer überlegen, wenn ein System gehackt wird und der Hacker übernimmt den Benutzer, dann kann der Hacker (der Angreifer) genau so viel wie der Benutzeraccount (also das Benutzerkonto). Das interessiert viele nicht und geben sich Berechtigungen ohne Ende!

Ein «normaler» Benutzer soll sich am System anmelden können und die Appliaktionen die er für seine Arbeit benötigt starten können. Um die verarbeiteten Informationen speichern zu können, braucht er Schreibrechte auf ein Filesystem (lokal oder auf einem Server). Damit hat sich das eigentlich schon erledigt, mehr Berechtigungen braucht es eigentlich nicht für ein normalen Benutzer.

Was ist mit dem Chef?

Ein chef braucht keine Berechtigugen auf jedes System - es kann sein, dass ein Chef in meheren Gruppen eingetragen wird, aber nicht in allen! Wenn ein Chef bspw. bei einem Server genauer reinschauen möchte, dann geht der zu dem Administrator - sein Benutzer soll keine Rechte erhalten für irgendwelche Einsichten und Möglichkeiten zum Konfigurieren oder dergleichen. Das ist schlicht weg nicht notwendig. »»» Ein Chef ist ein «normaler» Benutzer des Systems.

Wenn ein Chef «Administrationsrechte» bspw. bei einem Server haben möchte, dann zieht er den Hut vom Chef ab und zieht den Hut des Administrators an. Das heisst, er meldet sich mit seinem Benutzer ab und geht über den normalen Weg eines Administrators, also Neu-Anmeldung an dem betreffenden System mit einem entpsrechenden Benutzer. Keine Sonderbehanldungen für den Benutzer vom Chef, keine Ausnahmen!

Was ist mit dem Administrator?

Administratoren können in den meisten Firmen viel zu viel, d.h. deren Berechtigungen sind viel zu weit gesetzt. Ein Administrator soll nur auf das eine System zugreifen können, nicht aber mit seinem Administrator-Account auf alle Server einfach so zugreifen können - ist ein no-go! Man sieht es heute noch in vielen Firmen, dass ein Administrator-Account einfach alles machen kann innerhalb der Firma. Solche Zustände gilt es zu unterbinden.

Wie sieht das bei Windows aus?

Eine bessere Praxis besteht darin, das Konzept des “Least Privilege” (geringstmögliche Berechtigungen) anzuwenden, um die Sicherheit zu erhöhen. Hier sind einige Möglichkeiten, wie man die Zugriffssteuerung verbessern kann:

  1. Prinzip der minimalen Berechtigungen
    Jeder Benutzer, einschliesslich der Administratoren, sollte nur die Berechtigungen haben, die für die Ausführung deren Aufgaben unbedingt erforderlich sind. Admin-Rechte sollten nicht standardmässig gewährt werden.

  2. Verwendung von Gruppenkonten
    Anstatt einem einzelnen Administratoren-Account umfassenden Zugriff zu gewähren, können separate Gruppenkonten erstellt werden, die spezifische administrative Aufgaben auf bestimmten Servern durchführen können. Jedes Konto sollte nur die Berechtigungen haben, die für diese spezifischen Aufgaben benötigt werden.

  3. Einsatz von Just-in-Time-Privileged-Access
    Administrativer Zugriff kann zeitlich begrenzt und bedarfsorientiert gewährt werden. Administratoren müssen Zugriffsanfragen stellen, die genehmigt werden müssen, bevor sie vorübergehend erhöhte Berechtigungen erhalten.

  4. Implementierung von Zwei-Faktor-Authentifizierung (2FA)
    Durch die Aktivierung der 2FA für Administratoren wird die Sicherheit weiter erhöht, da neben dem Passwort ein weiterer Authentifizierungsfaktor erforderlich ist.

  5. Audit und Überwachung
    Protokollierung und Überwachung von Administratoraktivitäten sind entscheidend, um verdächtige Aktivitäten zu erkennen. Es sollten geeignete Protokolle erstellt und regelmässig überprüft werden.

  6. Periodisches Überprüfen der Berechtigungen
    Regelmässige Überprüfungen der Benutzerkonten und deren Berechtigungen sollten durchgeführt werden, um sicherzustellen, dass keine unnötigen oder übermässigen Zugriffsrechte bestehen.

Bei Linux sieht das etwas anders aus!

In Linux können ähnliche Sicherheitspraktiken angewendet werden, um den Zugriff auf Systeme zu verbessern. Hier sind einige Empfehlungen:

  1. Verwendung des Prinzips der minimalen Berechtigungen
    Gewähre den Benutzern und Administratoren nur die Berechtigungen, die für deren spezifischen Aufgaben erforderlich sind. Standardbenutzer sollten keine administrativen Rechte besitzen.

  2. Verwendung von separaten Benutzerkonten
    Erstelle ein separate Benutzerkonten für einzelne Administrationsaufgaben. Jedes Konto sollte nur die erforderlichen Berechtigungen haben und auf bestimmte Aufgaben oder Server beschränkt sein.

  3. Sudo-Konfiguration
    Statt einem einzigen Administratoren-Account uneingeschränkten Zugriff zu gewähren, verwende das “sudo”-Befehlssystem, um einzelnen Benutzern temporär erhöhte Rechte zu gewähren. Dadurch können Administratoren ihre Aufgaben mit spezifischen Berechtigungen ausführen, während der Zugriff auf privilegierte Operationen eingeschränkt bleibt.

  4. Verwendung von Gruppen
    Gruppen können in Linux verwendet werden, um Benutzern gemeinsame Berechtigungen zuzuweisen. Sie können Gruppen erstellen, die auf bestimmte Server oder Aufgabenbereiche beschränkt sind und dann die entsprechenden Benutzer in diese Gruppen aufnehmen.

  5. Schlüsselbasierte Authentifizierung
    Stelle sicher, dass nur autorisierte Benutzer auf die Systeme zugreifen können, indem Sie die schlüsselbasierte SSH-Authentifizierung anstelle von Passwörtern verwenden. Dies erhöht die Sicherheit und erschwert den Zugriff durch unautorisierte Personen. Ich würde dann gleich einmal alle SSH-Schlüssel auf dem Server löschen und neue generieren mit ed25519. Der Server soll dann auch gleich so konfiguriert werden, dass die Leute die sich via SSH anmelden, nr ein ed25519 verwenden dürfen um auf das System zu kommen. Ebenso muss der Benutzer der mit SSH zugreift, in der Gruppe der ssh-user sein, ansonsten klappt es auch nicht mit dem Zertifikat - mehr dazu unter: Alles zur Konfiguration von SSH

  6. Audit und Überwachung
    Implementiere ein zentrales Protokollierungssystem, um Administratoraktivitäten zu überwachen. Überprüfe regelmässig die Protokolle auf verdächtige Aktivitäten und ungewöhnliche Zugriffsversuche.

  7. Periodische Überprüfung der Berechtigungen
    Überprüfe regelmässig die Benutzerkonten, Gruppenmitgliedschaften und Berechtigungen, um sicherzustellen, dass keine unnötigen oder übermässigen Zugriffsrechte bestehen.

Wie sieht es mit Ausnahmen aus?

Im System gibt es keine Ausnahmen! Unter Linux funktioniert das glücklicherweise nicht und bei AD kann man «reinwurschteln», sollte man aber nicht. Man wird die Sonderrechte in einem AD vergessen - die werden immer vergessen! Wenn der Benutzer mit den Sonderrechten eines Tages die Firma verlässt, dann wird im AD für den deaktivierten Benutzer eine Schlüsselnummer bleiben. Hat man den Benutzer der die Firma verlassen hat, nicht gelöscht, kann er wieder aktiviert werden uns sogleich sind wieder alle Sonderrechte aktiv! Keie Sonderrechte verteilen - ein Bneuzter, wenn er einmal ein «speziellen» Zugang benötigt, wird das mit Hilfe von Benutzer und Gruppen gelöst und keine Schnellschüsse.

Benutzer-Accounts die nicht mehr benötigt werden, werden gelöscht! Nicht deaktiviert, sondenr gelöscht, keine Ausnahme! Wenn ein Benutzer länger nicht mehr vorhanden ist (bspw. mehere Monate), wird dessen Account nicht deaktiviert, er wird gelöscht.
Bis der wieder zurück ist, hat sich die Welt ein paar mal gedreht und damit auch die Spielregeln innerhalb der Firma - wenn der Mitarbeiter wieder zurück ist, wird er im Sinne seiner Aufgaben in das System wieder integriert.

Sonderfall: sudo

sudo ist schon etwas sehr speziell, mit ihm kann man schnell ein System-relevanter Befehl ausführen oder auch gleich als sudo angemeldet bleiben (was gefährlich ist, weil sudo die root-Rechte besitzt)! Was das schlauste wäre ist, wenn man mit dem Opertor -k arbeiten würde (dass Passwort wird vom System gleich wieder vergessen).

Bei einigen Linux-Derivaten wird der sudo direkt installiert und der ertse Benutzer des Systems dieser Gruppe zugefügt. Debian macht das nicht!, Debian hat kein Benutzer und keine Gruppe «sudo»! Möchte man die in Debian haben, kann man das nachinstallieren, doch auf einem Server empfehle ich das auf keinen Fall - macht das nicht.
Der Grund ist relativ einfach, ein Server ist nicht ein Ding, auf dem man sich ständig bewegt. Man muss nicht immer auf dem Server sein und dort arbeiten. Also nehmt euch die Zeit und meldet sich sauber als root af dem Server an mit su - soviel Zeit muss sein, es ist zu deiner Sicherheit.

Wenn du ein Debian auf deinem Rechner oder Laptop installiert hast, dann kannst du gerne ein «sudo» nachinstallieren und dein Benutzer der Gruppe sudo hinzufügen, kein Problem, aber bitte nicht auf anderen Systemen.

Der root und SSH

Oftmals erlebe ich in Firmen, dass man bei einem SSH Zugriff auf ein root kommt! no-go!
Wenn man mit SSH über die sever springt, dann macht man das als Benutzer und nicht als root. Ein root hat NIE rechte für ein SSH-Zugriff! Nie und nimmer!

Hat man sich mit einem Server via SSH verbunden, kann man sich mit su - als root drüber anmelden und seine Arbeiten ausführen, danach wird man sich aber abmelden! Wenn ich bei den Firmen auf ein sErver via SSH zugreife und bin dann gleich als root angebemdelt, dann stehen mir «die Haare zu Berge»! Das darf nie und nimmer sein! Hätte ich das Sytem gehackt, würde ich den root geschenkt bekommen.

Ein root wird in de rDefintion des SSH-Servers für eine Anmeldung ausgeschlossen! Sie dahzu mehr unter:
Alles zur Konfiguration von SSH, Einstellungen des Config auf dem Server »»» PermitRootLogin no

Das Zahlenspiel der Berechtigungen

Alles steht und fällt mit den Benutzern und den definierten Gruppen. Erstellt ein Benutzer, erstellt unreschiedliche Gruppen, doch überlegt euch, welcher Benutzer tatsächlich in welche Gruppe gehört. Beim auflisten der Verzeichnisse, erkennt ihr schnell das Spiel von rwx, bspw. wie folgt:

-rwxrwxrwx it it 55K 14. Mai 14:07 test.txt

Das rwx müsst ihr unterteilen, es sind drei Bezeichnungen: Eigentümer, Gruppe, der Rest der Welt. Die ersten 3 sind immer der Eigentümer, dann 3 für die Gruppe und die letzten 3 für den Rest der welt.

und das für jedes der 3 teile (Eigentümer, Gruppe, der Rest der Welt)

- | rwx         |   rwx  | rwx
    Eigenttümer | Gruppe | der Rest der Welt

Man kann das ganze auch mit dem Befehl chmod ändern. Wie kann man rwx in Zahlen schreiben, dass es nie doppelte möglichkeiten gibt?

Man nimmt folgende Werte:

Damit kann man nun kombinieren und erhält folgende Zustände:

4 2 1      
r w x Werte Berechtigungen Bemerkung
0 0 0 = 0 - - - keine Berechtigungen
0 0 1 = 1 - - x nur ausführen
0 2 0 = 2 - w - nur schreiben
0 2 1 = 3 - w x schreiben und ausführen
4 0 0 = 4 r - - nur lesen
4 0 1 = 5 r - x lesen und ausführen
4 2 0 = 6 r w - lesen und schreiben
4 2 1 = 7 r w x lesen, schreiben und ausführen

Diese Berechnung macht man nun für jeden Teil, also den Eigentümer, die Gruppe und den Rest der Welt. Damit erhält man schlussendlich ein 3-stelligen Code, bspw. 644, die 6 für den Eigentümer, die 4 für die Gruppe und eine 4 für den Rst der Welt.

Vorsicht, wenn man nicht lesen oder ausführen kann, kann das File unter Umständen vom Benutzer nicht benutzt werden. Ein normales File hat die Defintion 644, ein Ordner besitzt 755.

Bei Ordnern die anderen Benutzer ebenso zugreifen sollen, müsst ihr eine Gruppe bauen und die entsprechenden Benutzer der Gruppe hinzufügen. Die ganze Gruppe hat dann dieselben Rechte, keiner kann bevorzugt werden. Entweder ist er Teil der Gruppe oder nicht. Keine Ausnahmen für Sonderzugriffe - so geht auch nie ein Benutzer «plötzlich» vergessen. Es wird immer nur über Benutzer und Gruppen verwaltet, alles andere ist nicht möglich.

Der Benutzer rwx

Wenn ihr ein bisschen Spass haben wollt, generiert ihr ein Benutzer mit dem Namen «rwx». Das sieht nicht nur lustig aus, da es zu dem Benutzer «rwx» auch eine entsprechende Gruppe «rwx» geben wird. So wird das lesen der Berechtigungen mit «rwx» und dem Benutzer «rwx» in der Gruppe «rwx» zu einem Spass, wenn ihr auf dem System Leute habt, die mit dem lesen der Berechtigungen noch so ihre Mühe haben.

Prinzipiell ist ein Benutzer mit dem Namen «rwx» zulässig, dem steht nichts im Weg um ein solchen Benutzer zu generieren. Feel free und geniesst es.


Erstellung von Linux-Benutzer

Benutzer [username] mit eigenem Home-Verzeichnis erstellen:

useradd -m [username]

Benutzer „test“ mit Home-Verzeichnis in /testordner erstellen:

useradd -m -d [folder] [username]

Benutzer „test“ mit Ablaufdatum am 2098-07-16 erstellen:

useradd -d [folder] -e 2098-07-16 [username]


Sich mit einem anderen Benutzer anmelden

In Linux könnt ihr euch zur Laufzeit mit einem anderen Benutzer einfach drüber anmelden,so nach dem Motto «feel free». Um sich mit einem anderen Benutzer in der Shell anzumelden, benutzt man folgenden Befehl:

su [username]


Linux-Benutzer löschen

Irgendwann wird der Zeitpunkt kommen, an dem ihr auch Benutzer löschen müsst. Das wäre von Vorteil, wenn man das einfach durchführen kann, ohne das System neu aufzusetzen oder ähnliche Übungen durchführen muss. Dazu gibt es zwei unterschiedliche Ansprüche:

Benutzer normal löschen mit:

userdel [username]

Benutzer mit Benutzerverzeichnis und Mailqueue löschen:

userdel -r [username]


Anmeldung als root

Es gibt verschiedene Möglichkeiten, sich als root anzumelden:. Die eine Möglichkeit ist die meist angewendete:

sudo su

Das Problem bei dieser Variante ist, dass man in den Ordner gelangt, in dem man gerade war - ist nicht immer wünschenswert. Daher gibt es es die Möglichkeit, sich sauber als root anzumelden:

su -

Damit hat man sich korrekt als root angemeldet. Es gibt jedoch noch eine weitere Möglichkeit, mit Hilfe von sudo:

sudo -i

Dieser Befehl bewirkt praktisch das gleiche wie su -, man kommt damit ebenso als root rein und direkt in den Ordner /root, was oftmals mehr wünschenswert ist für eine korrekte Ausgangslage.

Mit der Option -k könnt ihr euch als sudo anmelden und exakt ein Befehl als sudo ausführen lassen. Das Passwort wird nach der ausführung des Befehls vom System sogleich vergessen. Beispielsweise könnt ihr den nachstehenden Befehl ausführen:

sudo -k ls -l

Dies ist nütlich, wenn ihr auf einem System arbeitet, bei dem ihr nicht wisst, wer sonst noch auf dem System arbeitet und ihr kein Risiko eingehen wollt, dass das Passwort (weil es kurz im Speicher war) missbraucht wird für weitere Installationen oder abfragen.



Fussnoten in dieser Webseite:

  1. Active Directory (AD) heisst der mit Windows 2000 eingeführte Verzeichnisdienst von Microsoft Windows Server, dessen Kernkomponente auch als Active Directory Domain Services (AD DS) bezeichnet wird.
    Bei einem solchen Verzeichnis (englisch directory) handelt es sich um eine Zuordnungsliste wie zum Beispiel bei einem Telefonbuch, das Telefonnummern den jeweiligen Anschlüssen (Besitzern) zuordnet.