GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Systemadministrator-Grundlagen:Benutzerkontenverwaltung mit UIDs und GIDs

Wie viele Sysadmin-Aufgaben und Pflichten ist die Verwaltung von Benutzerkonten nicht nur eine Sache, noch existiert sie in einem Vakuum. Die Verwaltung von Benutzerkonten ist ein ständiger Aufgabenaspekt und hat viele Facetten:Kontoerstellung, Kontoentfernung, Berechtigungsmanipulation, Ablauf von Konten, Einrichtung von Passwortstandards, Durchsetzung von Sicherheit, Durchsetzung von Passwortänderungen und Manipulation von UIDs und GIDs, um ein System organisiert und zu halten erträglich. Teil eins konzentrierte sich auf nützliche Befehle. Dieser aktuelle Artikel befasst sich mit der Verwaltung von Benutzer-IDs (UIDs) und Gruppen-IDs (GIDs).

Einführung in UIDs und GIDs

Standardmäßig weisen Linux-Systeme neuen Benutzerkonten automatisch UIDs und GIDs in numerischer Reihenfolge zu, beginnend bei 1000. Mit anderen Worten, wenn Sie während der Installation ein neues Benutzerkonto erstellen, hat es UID =1000 und GID =1000, wie unten gezeigt:

khess:x:1000:1000:Ken Hess:/home/khess:/bin/bash

Die Theorie hinter dieser willkürlichen Zuweisung ist, dass alles unter 1000 für Systemkonten, Dienste und andere spezielle Konten reserviert ist und normale Benutzer-UIDs und -GIDs über 1000 bleiben. Diese Theorie basiert auf der Annahme, dass 999 Kontonummern abzüglich einiger Vorab- Zugewiesene werden mehr als genug sein, um die meisten Systeme für viele Jahre zufrieden zu stellen. Als Linux-Administrator seit mehr als 20 Jahren sind mir diese ersten 999-Systemkontonummern nie ausgegangen.

Das Root-Konto hat das großartige Privileg, UID =0 und GID =0 zu haben. Diese Zahlen verleihen dem Root-Konto seine überwältigende Macht. Wenn Sie mir nicht glauben, benennen Sie das Root-Konto in goonygoogoo um , oder was auch immer Sie wählen, und erstellen Sie dann ein neues Benutzerkonto mit dem Namen root , wodurch das System ihm die nächste verfügbare UID und GID zuweisen kann. Dieses Konto hat nicht mehr Macht als jedes andere Benutzerkonto auf dem System. Nicht der Name, sondern die UID und die GID geben dem Administrationskonto seine Macht. Um diese Behauptung weiter zu testen, weisen Sie ein Testnutzerkonto mit 0 für UID und GID zu, und dieser Nutzer ist jetzt unabhängig vom Kontonamen root.

Wie Sie der folgenden Liste entnehmen können, werden Benutzerkonten (wie bereits erwähnt) UID und GID in numerischer Reihenfolge ab 1000 zugewiesen. Die UID und GID stimmen immer überein, um die Dinge zu organisieren:

khess:x:1000:1000:Ken Hess:/home/khess:/bin/bash
msmith:x:1001:1001::/home/msmith:/bin/bash
mjones:x:1003:1003:Mary Jones:/home/mjones:/bin/bash
jjones:x:1004:1004:John Jones:/home/jjones:/bin/bash
djones:x:1005:1005:Don Jones:/home/djones:/bin/bash

Es gibt keine Magie in diesem Setup. Das macht das System. Ich muss mir keine Sorgen machen.

Was aber, wenn Ihre Richtlinien in Bezug auf Benutzer- und Gruppeninformationen unterschiedlich sind? Es ist möglich, dass Ihr Unternehmen möchte, dass UIDs und GIDs basierend auf der Mitarbeiter-ID oder einer anderen eindeutigen Kennung zugewiesen werden (hoffentlich keine Sozialversicherungsnummer, obwohl ich gesehen habe, dass diese Nummer in der Praxis verwendet wird). Oder was ist, wenn Sie bestimmte GIDs basierend auf Rollen zuweisen möchten anstatt Benutzer zu einer GID in /etc/group hinzuzufügen ? Nun, mit useradd ist das ganz einfach Befehl aus meinem vorherigen Artikel zu diesem Thema, in dem es um die Grundlagen der Verwaltung von Nutzerkonten ging.

Das Folgende ist die Benutzerliste von /etc/group :

khess:x:1000:
msmith:x:1001:
mjones:x:1003:
jjones:x:1004:
djones:x:1005:

Anpassen von UIDs und GIDs

Traditionell tun Administratoren, die einen Nutzer zu nicht primären Gruppen hinzufügen möchten, dies bei der Kontoerstellung mit useradd mit dem -G schalten. Achten Sie darauf, alle sekundären Gruppen nach dem -G aufzulisten Schalter, getrennt durch Kommas ohne Leerzeichen. Mit dem folgenden Befehl kann das System die UID und die primäre GID aus der nächsten verfügbaren Nummer auswählen, fügt jedoch den Benutzer jdoe hinzu an den sysadmin und helpdesk Gruppen:

$ sudo useradd -G sysadmin,helpdesk jdoe

Wenn Sie die primäre Gruppe mit dem -g angeben möchten wechseln, muss die Gruppe bereits existieren. Wenn Sie beispielsweise den folgenden Befehl eingeben:

$ sudo useradd -u 10600 -g 10600 -G sysadmin,helpdesk jdoe

Sie erhalten den Fehler "useradd:group '10600' does not exist" und das System erstellt das Konto nicht. Wenn Sie die Gruppe angeben müssen, fügen Sie zuerst die Gruppe hinzu:

$ groupadd 10600

$ sudo useradd -u 10600 -g 10600 -G sysadmin,helpdesk jdoe

Gruppenberechtigungen verwalten

Wenn Nutzer Dateien erstellen, erhält der Eigentümer des Nutzers Lese- (r) und Schreibberechtigungen (w), die Gruppe erhält Leseberechtigungen und andere erhalten Leseberechtigungen (rw-r--r--) oder in Zahlen ausgedrückt 644. Die Die Berechtigung zum Ausführen (x) wird standardmäßig nicht erteilt. Wenn ein Gruppenmitglied also als Systemadministrator eine Ausführungsberechtigung für eine Datei oder eine Gruppe von Dateien anfordert, erteilen Sie die Ausführungsberechtigung nur für die Gruppe:

$ sudo chmod g+x coolscript.sh

Der Benutzer kann die Berechtigung selbst ändern, wenn er der Besitzer des Benutzers ist, tut dies aber oft nicht, aus Angst, es falsch zu machen. Nur der Benutzerbesitzer oder der Root-Benutzer kann Berechtigungen für eine Datei ändern, selbst wenn die Gruppe über Schreibberechtigung für die Datei verfügt. Schreibberechtigung bedeutet, dass ein Gruppenmitglied die Datei bearbeiten oder löschen kann.

Stellen Sie sicher, dass freigegebene Gruppenverzeichnisse über Schreibzugriff (Berechtigung) für die Gruppe verfügen und dass die Dateien, die von Gruppenmitgliedern geändert werden müssen, ebenfalls über Schreibzugriff verfügen. Einige von Ihnen, die über fortgeschrittenere Berechtigungen verfügen, fragen sich wahrscheinlich, warum ich chattr nicht erwähne (Attribute ändern) Befehl, und es ist eine gültige Frage. Der chattr Der Befehl ist für diesen Artikel nicht relevant, wird aber in einem späteren Artikel behandelt, der sich ausschließlich auf chattr konzentriert und seine vielen Optionen.

Abschluss

Dieser Artikel enthält eine kurze Beschreibung der UID- und GID-Attribute und wie Sie diese bei Bedarf manipulieren können. Ich habe auch ein wenig über Gruppenberechtigungen gesprochen. In einem zukünftigen Artikel werde ich den chattr behandeln Befehl, der Ihnen Optionen gibt, um ein versehentliches Löschen durch Gruppenmitglieder zu verhindern. Wenn Sie weiterlesen möchten, tun Sie dies mit Vorsicht. Der chattr Der Befehl kann frustrierend für neue Administratoren sein, die mit seiner Syntax und den Folgen von Optionen nicht vertraut sind.

[Möchten Sie Red Hat Enterprise Linux ausprobieren? Laden Sie es jetzt kostenlos herunter. ]


Linux
  1. 11 Möglichkeiten, Benutzerkontoinformationen und Anmeldedaten in Linux zu finden

  2. Benutzerstatus- und Aktivitätsüberwachung in Linux mit GNU-Konto

  3. Linux-Labor:SysAdmin 101

  4. MySQL-Benutzer- und Datenbankgrundlagen

  5. Benutzerumgebungsvariablen Mit „su“ und „sudo“ unter Linux

Linux-Paketverwaltung mit dnf

Ein Leitfaden für Systemadministratoren zur Netzwerkverwaltung

Erste Schritte mit GIT unter Linux

Linux-Systemadministratorgrundlagen:NIC beim Booten starten

Linux-Paketverwaltung mit YUM und RPM

Grundlagen der Linux-Befehlszeile – Arbeiten mit Dateien und Verzeichnissen