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 --updateCentOS / RHEL :Verwalten der Kennwortalterung für Benutzer mit Chage (mit praktischen Beispielen)
Verständnis der Datei /etc/login.defs