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

Anfängerleitfaden zur Benutzer- und Gruppenverwaltung in Linux

Jeder Benutzer in Linux hat eine eindeutige Benutzer-ID (UID ), bei der es sich um eine gewöhnliche Ganzzahl handelt, und einem zugehörigen Benutzernamen. Benutzer melden sich mit ihren Benutzernamen an, aber das System verwendet die zugehörigen UIDs. Jedes Benutzerkonto hat auch ein Home-Verzeichnis und eine Login-Shell. Wenn sich Benutzer anmelden, werden sie in ihr Home-Verzeichnis gestellt und ihre Login-Shell wird ausgeführt. Alle diese Benutzerkontoinformationen werden in /etc/passwd gespeichert Datei.

Jeder Benutzer gehört auch einer oder mehreren Gruppen an. Der gleichen Gruppe können verschiedene Benutzer zugeordnet werden. Der Zugriff kann einer Gruppe gewährt werden, und allen Mitgliedern der Gruppe werden die gleichen Zugriffsrechte gewährt. Jedes Gruppenkonto in Linux hat eine eindeutige Gruppen-ID (GID ) und einen zugeordneten Gruppennamen. Gruppeninformationen werden in /etc/group gespeichert Datei.

RedHat Linux verwendet ein User Private Group (UPG)-Schema . Wenn ein neues Benutzerkonto hinzugefügt wird, wird auch eine neue private Benutzergruppe erstellt. Die private Benutzergruppe hat denselben Namen wie der Benutzer, und der neue Benutzer ist das einzige Mitglied dieser Gruppe.

Sowohl Benutzer als auch Gruppen verwenden Shadow-Passwörter. Passwörter werden gehasht und in verschiedenen Dateien gespeichert, /etc/shadow für Benutzer und /etc/gshadow für Gruppen. Die Sicherheit wird verbessert, indem gehashte Passwörter in „Schatten“-Dateien gespeichert werden, da diese Dateien nur vom Root-Benutzer gelesen werden können. Die Verwendung von Shadow-Passwörtern bietet auch Passwortalterungsparameter und ermöglicht die Durchsetzung von Sicherheitsrichtlinien mithilfe der Datei /etc/login.defs. Nur der Root-Benutzer kann Benutzer- und Gruppenkonten hinzufügen, ändern oder löschen.

Benutzer- und Gruppenkonfigurationsdateien

/etc/passwd

Wenn ein neuer Benutzer hinzugefügt wird, werden die Informationen als einzelne, durch Doppelpunkte getrennte Zeile in /etc/passwd gespeichert. Hier ist ein Beispiel für einen Eintrag in dieser Datei:

# tail -1 /etc/passwd
test:x:1001:1001:test user:/home/test:/bin/bash

Im Folgenden wird dieser Eintrag beschrieben:

Feld Beschreibung
test Benutzername
x Gibt an, dass Shadow-Passwörter verwendet werden
1001 UID, diese beginnen mit 1000 und werden für jeden neu hinzugefügten Benutzer um 1 erhöht. UIDs unter 1000 sind für die Systemnutzung reserviert.
1001 GID der primären Gruppe des Benutzers. Diese beginnen mit 1000 und werden für jede neue Gruppe um 1 erhöht. Benutzer können mehreren Gruppen angehören.
Testbenutzer GECOS-Informationen (General Electric Comprehensive Operating System), die nur zu Informationszwecken verwendet werden, z. B. vollständiger Name
/home/test Home-Verzeichnis für diesen Benutzer
/bin/bash Standard-Shell für diesen Benutzer

/etc/shadow

Bei Shadow-Passwörtern wird automatisch ein neuer Eintrag zu /etc/shadow hinzugefügt, wenn ein neuer Benutzer erstellt wird. Diese Datei kann nur von root angezeigt werden. Hier ist ein Beispiel für einen Eintrag in dieser Datei:

# tail -1 /etc/shadow
test:$6$XBCDBQ...:17610:0:99999:7:::

Im Folgenden wird dieser Eintrag beschrieben:

Feld Beschreibung
test Benutzername
$6$XBCDBQ… Gehashter Passwortwert (Teilwert angezeigt). Das Klartextpasswort selbst wird nicht auf der Festplatte gespeichert. Ein Algorithmus erstellt aus einem Passwort eine eindeutige Zeichenfolge.
17610 Anzahl der Tage, seit das Passwort geändert wurde (gezählt in Tagen seit dem 1. Januar 1970).
0 Anzahl der Tage, die vergehen müssen, bevor das Passwort vom Benutzer geändert werden muss.
99999 Maximale Anzahl von Tagen seit der Passwortänderung, die das Passwort verwendet werden kann. Nach dieser Anzahl von Tagen muss das Passwort vom Benutzer geändert werden.
7 Anzahl der Tage vor dem Ablaufdatum, an denen der Benutzer vor der ausstehenden Kennwortänderungsrichtlinie gewarnt wird. Wenn das Passwort nach dieser Anzahl von Tagen nicht geändert wird, wird das Benutzerkonto gesperrt.

Das nächste Feld ist leer, wird aber verwendet, um das letzte Datum zu speichern, an dem das Konto gesperrt wurde (gezählt in Tagen seit dem 1. Januar 1970). Das letzte Feld ist ebenfalls leer, wird aber nicht verwendet.

/etc/group

Da Oracle Linux ein UPG-Schema verwendet, wird automatisch ein neuer Eintrag in /etc/group erstellt, wenn ein neuer Benutzer hinzugefügt wird. Der Gruppenname ist derselbe wie der Benutzername. Hier ist ein Beispiel für einen Eintrag in dieser Datei:

# tail -1 /etc/group
test:x:1000:test

Im Folgenden wird dieser Eintrag beschrieben:

Feld Beschreibung
test Gruppenname
x Gibt an, dass Shadow-Passwörter verwendet werden
1000 GID
test Liste der Benutzer, die Mitglieder der Gruppe sind

Jede Gruppe kann mehrere Benutzer haben. Benutzer können auch mehreren Gruppen angehören. Die im Benutzereintrag in /etc/passwd gespeicherte GID ist die primäre Gruppe des Benutzers.

/etc/gshadow

In dieser Datei werden gehashte Gruppenkennwörter gespeichert. Gruppenpasswörter werden jedoch selten verwendet. Hier ist ein Beispiel für einen Eintrag in dieser Datei:

# tail -1 /etc/gshadow 
test:!!::test

Im Folgenden wird dieser Eintrag beschrieben:

Feld Beschreibung
test Gruppenname
x Gehashtes Passwort. Das !! Zeigt an, dass das Konto gesperrt ist.
Orakel Liste der Benutzer, die Mitglieder der Gruppe sind

Die letzten beiden Felder werden verwendet, um Administratoren und Mitglieder zu benennen.

Hinzufügen eines Benutzerkontos

Benutzer hinzufügen

Verwenden Sie den Befehl useradd, um ein Benutzerkonto hinzuzufügen. Die Syntax lautet:

# useradd [options] user_name

Beim Erstellen eines neuen Benutzers ohne Optionen werden die Standardeinstellungen angewendet. Beispiel:

# useradd john
# tail -1 /etc/passwd
john:x:501:501::/home/john:/bin/bash

Ebenfalls standardmäßig erstellt useradd ein gesperrtes Benutzerkonto. Um das Konto zu entsperren und ein Passwort zuzuweisen, führen Sie den Befehl passwd user_name als root aus. Beispiel:

# passwd john

Der Befehl passwd user_name fordert Sie zur Eingabe eines neuen Passworts auf. Je nach Komplexität des Passworts werden Sie möglicherweise benachrichtigt, dass das Passwort ungültig ist (zu kurz oder zu einfach). Geben Sie dasselbe Passwort erneut ein, um fortzufahren und das Benutzerkonto zu entsperren. Derselbe passwd-Befehl wird verwendet, um ein Passwort zu ändern. Der Root-Benutzer kann das Passwort eines Benutzers jederzeit ändern. Benutzer werden aufgefordert, zuerst das aktuelle Passwort einzugeben.

Standardeinstellungen

Die Standardeinstellungen für einen neuen Benutzer können mit der Option -D angezeigt und geändert werden. Beispiel:

# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Die INAKTIV Die Direktive legt die Anzahl der Tage nach Ablauf eines Passworts fest, bis das Konto gesperrt wird. Ein Wert von 0 sperrt das Konto, sobald das Passwort abläuft. Ein Wert von -1 deaktiviert die Funktion. Inhalt des SKEL (/etc/skel standardmäßig) werden beim Erstellen des Benutzerkontos in das Home-Verzeichnis eines neuen Benutzers kopiert. Standardeinstellungen werden in /etc/default/useradd gespeichert . Die folgenden Optionen, die mit –D verwendet werden, ändern die Standardwerte des useradd-Befehls:

  • -b default_home :Das anfängliche Pfadpräfix für das Home-Verzeichnis eines neuen Benutzers
  • -e default_expire_date :Das Datum, an dem das Benutzerkonto deaktiviert wird
  • -f default_inactive :Die Anzahl der Tage nach Ablauf eines Passworts, bevor das Konto gesperrt wird
  • -g default_group :Der Gruppenname oder die ID für die Anfangsgruppe eines neuen Benutzers
  • -s default_shell :Die Login-Shell des neuen Benutzers

Um beispielsweise die Anmelde-Shell eines neuen Benutzers in die Bourne-Shell zu ändern, geben Sie Folgendes ein:

# useradd –D –s /bin/sh user_name

useradd-Optionen

Für den useradd-Befehl stehen mehrere Optionen zur Verfügung, um die Standardeinstellungen zu überschreiben. Im Folgenden sind einige der am häufigsten verwendeten Optionen aufgeführt:

  • -c Kommentar :Die GECOS-Informationen des neuen Benutzers, z. B. vollständiger Name
  • -d home_dir :Das anfängliche Pfadpräfix für das Home-Verzeichnis eines neuen Benutzers
  • -e Ablaufdatum :Das Datum (Format JJJJ-MM-TT), an dem das Benutzerkonto deaktiviert wurde
  • -g initial_group :Der Gruppenname oder die Nummer der ersten Anmeldegruppe des Benutzers. Der Gruppenname muss existieren. Eine Gruppennummer muss sich auf eine bereits bestehende Gruppe beziehen.
  • -G-Gruppe :Eine Liste sekundärer Gruppen, denen der Benutzer ebenfalls angehört. Jede Gruppe wird von der nächsten durch ein Komma getrennt, ohne dazwischenliegende Leerzeichen.
  • -p Passwort :Legen Sie das Passwort des neuen Benutzers fest.
  • -s-Shell :Der Name der Login-Shell des Benutzers

Um beispielsweise einen neuen Benutzernamen „john“ zu erstellen, den Namen des Benutzers einzuschließen und die Anmelde-Shell in die C-Shell zu ändern, geben Sie Folgendes ein:

# useradd –c "John Smith" –s /bin/csh john

nologin-Shell

Wenn Sie ein neues Benutzerkonto hinzufügen, wird dem Benutzer standardmäßig Shell-Zugriff gewährt. Sie können mit nologin shell ein Benutzerkonto erstellen, um beispielsweise einen Dienst wie SMTP, FTP oder einen Webserver auszuführen. Ein Benutzer ohne Login-Shell kann sich nicht an einem System anmelden und daher keine Befehle interaktiv auf dem System ausführen. Prozesse können jedoch unter diesem Benutzer ausgeführt werden.

Die Anmeldung als Benutzer mit einer Nologin-Shell wird höflich abgelehnt und eine Meldung angezeigt, dass das Konto nicht verfügbar ist. Wenn die Datei /etc/nologin.txt existiert, zeigt nologin den Inhalt der Datei und nicht die Standardmeldung an. Um einen nologin-Benutzer zu erstellen, stellen Sie zunächst sicher, dass nologin in /etc/shells vorhanden ist Datei:

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash

So fügen Sie einen neuen Benutzer namens test ohne Shell-Zugriff hinzu:

# useradd -s /sbin/nologin test

Beim Versuch, sich als Benutzertest anzumelden, wird Folgendes angezeigt:

# su – test
This account is currently not available.

Ändern oder Löschen von Benutzerkonten

Benutzermod

Verwenden Sie den Befehl usermod, um ein vorhandenes Benutzerkonto zu ändern. Die Syntax lautet:

# usermod [options] user_name

Eine der häufigsten Verwendungen des Befehls usermod ist das Hinzufügen eines Benutzers zu einer anderen (sekundären) Gruppe. Verwenden Sie das –a und –G Optionen, gefolgt von einer durch Kommas getrennten Liste der sekundären Gruppen, zu denen der Benutzer hinzugefügt werden soll. Das folgende Beispiel listet den Inhalt von /etc/group auf, bevor und nachdem ein Benutzer geändert und zu einer sekundären Gruppe hinzugefügt wurde:

# grep 1017 /etc/group 
students:x:1017:
# usermod –aG 1017 mary 
# grep 1017 /etc/group students:x:1017:mary

userdel

Verwenden Sie den Befehl userdel, um ein Benutzerkonto zu löschen. Beispiel:

# userdel john

Gruppenkontoverwaltung

Gruppe hinzufügen

Verwenden Sie den Befehl groupadd, um ein Gruppenkonto hinzuzufügen. Die Syntax lautet:

# groupadd [options] group_name

Gruppenmod

Verwenden Sie den Befehl groupmod, um ein Gruppenkonto zu ändern. Die Syntax lautet:

# groupmod [options] group_name

groupdel

Verwenden Sie den Befehl groupdel, um ein Gruppenkonto zu löschen. Die Syntax lautet:

# groupdel group_name

Sie können Gruppen auch dann entfernen, wenn Mitglieder in der Gruppe sind. Sie können die primäre Gruppe eines vorhandenen Benutzers nicht entfernen. Sie müssen den Benutzer entfernen, bevor Sie die Gruppe entfernen.

gpasswd

Verwenden Sie den Befehl gpasswd, um /etc/group und /etc/gshadow zu verwalten. Jede Gruppe kann Administratoren, Mitglieder und ein Passwort haben. Die Syntax lautet:

# gpasswd [options] group_name

Gruppen

Der Befehl groups zeigt die Gruppen an, denen ein Benutzer angehört. Das folgende Beispiel veranschaulicht, dass der Benutzer oracle zwei Gruppen angehört, oracle (primäre Gruppe) und students (sekundäre Gruppe):

$ grep oracle /etc/passwd
oracle:x:1000:1000:Oracle Student:/home/oracle/bin/bash
$ grep oracle /etc/group
oracle:x:1000: students:x:1056:student1,student2,oracle

Der Gruppenbefehl (angemeldet als Oracle) überprüft diese Gruppenmitgliedschaften.

$ whoami
oracle
$ groups 
oracle students

newgrp

Der Befehl newgrp führt eine neue Shell aus und ändert die tatsächliche Gruppenidentifikation eines Benutzers. Das folgende Beispiel veranschaulicht die Gruppen-ID vor und nach dem Ausführen des Befehls. Es zeigt auch, dass eine neue Shell ausgeführt wird.

$ id
uid=1000(oracle) gid=1000(oracle)
groups=1000(oracle),1066(students)... 

Beachten Sie, dass die gid gleich 1000 (Oracle) ist.

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash 
20411 pts/0 00:00:00 ps
$ newgrp students
$ id
uid=1000(oracle) gid=1066(students)
groups=1000(oracle),1066(students)...

Beachten Sie, dass die gid jetzt gleich 1066 (Studenten) ist. Beachten Sie auch, dass eine neue Shell ausgeführt wurde:

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash
20464 pts/0 00:00:00 bash
20486 pts/0 00:00:00 ps

Der Befehl newgrp erkennt keine Gruppen-ID-Nummern und Sie können Ihren echten Gruppennamen nur in eine Gruppe ändern, der Sie angehören. Wenn Sie den Befehl ohne Argument ausführen, wird die tatsächliche Gruppenidentifikation auf die primäre Gruppe des Benutzers gesetzt.

Passwortkonfiguration

Die Kennwortalterung erfordert, dass Benutzer ihr Kennwort regelmäßig ändern. Verwenden Sie den Befehl „chage“, um den Kennwortablauf zu konfigurieren. Die Syntax lautet:

# chage [options] user_name

Geben Sie den Befehl „chage“ gefolgt von einem Benutzernamen ein, um vorhandene Kennwortalterungswerte anzuzeigen und Änderungen vorzunehmen. Um beispielsweise Werte für Benutzer john anzuzeigen und zu ändern, geben Sie (als Benutzer root):

ein
# chage john
Changing the aging information for john
Enter the new value, or press ENTER for the default

	Minimum Password Age [0]: 
	Maximum Password Age [99999]: 
	Last Password Change (YYYY-MM-DD) [2018-03-24]: 
	Password Expiration Warning [7]: 
	Password Inactive [-1]: 
	Account Expiration Date (YYYY-MM-DD) [-1]: 

Informationen zur Kennwortalterung werden in der Datei /etc/shadow gespeichert. So zeigen Sie den Eintrag des Benutzers john an, bevor Sie Änderungen vornehmen:

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:0:99999:7:::

Das Ändern des minimalen Passwortalters auf 14 und des maximalen Passwortalters auf 30 bedeutet, dass der Benutzer in 14 Tagen 30 Tage Zeit hat, sein Passwort zu ändern. Der neue Eintrag erscheint als:

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:14:30:7:::

Basierend auf diesen Informationen wird der Benutzer sieben Tage vor dem Ablaufdatum des Passworts aufgefordert, sein Passwort zu ändern. Die Direktive INACTIVE wird verwendet, um die Anzahl der Tage der Inaktivität nach Ablauf eines Passworts festzulegen, bevor das Benutzerkonto gesperrt wird. Das Setzen von INACTIVE auf -1 deaktiviert diese Funktion.

Optionen ändern

Für den Befehl „chage“ stehen eine Reihe von Optionen zur Verfügung. So listen Sie Alterungsinformationen auf:

# chage -l john
Last password change					: Mar 24, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

Um einen Benutzer zu zwingen, sofort ein neues Passwort festzulegen (unmittelbaren Ablauf erzwingen), setzen Sie den letzten Passwortänderungswert auf 0. Beispiel:

# chage –d 0 john

Nach der Anmeldung wird der Benutzer aufgefordert, sein Passwort zu ändern.

authconfig

Der Hash-Algorithmus für Linux-Benutzerkennwörter ist ebenfalls konfigurierbar. Verwenden Sie den Befehl authconfig, um den aktuell verwendeten Algorithmus zu bestimmen oder ihn auf etwas anderes einzustellen. So bestimmen Sie den aktuellen Algorithmus:

# authconfig --test | grep hashing
    password hashing algorithm is sha512

Um den Algorithmus zu ändern, verwenden Sie –passalgo Option mit einem der folgenden Parameter als Parameter:descrypt , bigcrypt , md5 , sha256 oder sha512 , gefolgt von –update Möglichkeit. Zum Beispiel, um den Algorithmus auf MD5 zu ändern:

# authconfig --passalgo=md5 --update
CentOS / RHEL :Verwalten der Kennwortalterung für Benutzer mit Chage (mit praktischen Beispielen)
Verständnis der Datei /etc/login.defs


Linux
  1. 10 Linux-Befehls-Tutorials für Anfänger und Experten

  2. So fügen Sie Benutzer zu einer Gruppe in Linux hinzu

  3. So erstellen und löschen Sie Benutzergruppen in Linux

  4. 5 Schritte zum Einrichten von Benutzer- und Gruppenfestplattenkontingenten unter UNIX / Linux

  5. So verwalten Sie Datei- und Verzeichnisberechtigungen/Eigentümer in Linux

Ein Leitfaden für Anfänger zur Benutzerverwaltung auf Ubuntu Desktop und Server

Vollständiges Handbuch zur Benutzerverwaltung unter Linux

LILO Linux Bootloader Konfiguration und Anleitung

So fügen Sie einen Benutzer zu einer Gruppe unter Linux hinzu

Leitfaden für Anfänger zur MySQL-Benutzerverwaltung

So fügen Sie einen Benutzer zu einer Linux-Gruppe hinzu