Heim > Artikel > System-Tutorial > Anwendungssystemeinstellungen von Benutzer- und Benutzergruppendateien unter Linux
ID:ChinaUnix2013
1. Benutzer- und Benutzergruppendateien
Unter Linux werden Benutzerkonten, Benutzerkennwörter, Benutzergruppeninformationen und Benutzergruppenkennwörter in verschiedenen Konfigurationsdateien gespeichert.
Im Linux-System werden das erstellte Benutzerkonto und die zugehörigen Informationen (außer Passwort) in der Konfigurationsdatei /etc/passwd gespeichert. Da alle Benutzer Leseberechtigungen für die passwd-Datei haben, werden die Passwortinformationen nicht in der Datei, sondern in der Konfigurationsdatei /etc/shadow gespeichert.
In der passwd-Datei definiert eine Zeile ein Benutzerkonto. Die Werte jedes Arrays sind durch „:“ getrennt.
Im neu installierten Linux-System enthält die passwd-Konfigurationsdatei bereits viele Kontoinformationen. Diese Konten werden für den normalen Betrieb des Linux-Prozesses oder einiger Dienstprogramme benötigt ist Der Wert des letzten Arrays dieses Kontos ist normalerweise /sbin/nologin, was bedeutet, dass dieses Konto nicht zum Anmelden beim Linux-System verwendet werden kann.
In der passwd-Konfigurationsdatei die entsprechende Beziehung und Bedeutung jedes Arrays von links nach rechts:
Da passwd keine Passwortinformationen mehr speichert, wird es durch einen x-Platzhalter dargestellt.
Um zu verhindern, dass sich ein Benutzerkonto bei Linux anmeldet, setzen Sie einfach die vom Benutzer verwendete Shell auf /sbin/nologin. Beispielsweise sind für FTP-Konten normalerweise nur die Anmeldung und der Zugriff auf den FTP-Server zulässig, die Anmeldung beim Linux-Betriebssystem jedoch nicht. Wenn Sie verhindern möchten, dass ein Benutzer über Telnet-Berechtigungen verfügt, das heißt, dass sich der Benutzer nicht aus der Ferne anmelden und über Telnet auf das Linux-Betriebssystem zugreifen kann, setzen Sie einfach die vom Benutzer verwendete Shell auf /bin/true. Wenn Sie möchten, dass der Benutzer keine Telnet- und FTP-Anmeldeberechtigungen hat, können Sie die Shell des Benutzers auf /bin/false setzen.
Wenn in der Datei /etc/shells kein /bin/true oder /bin/false vorhanden ist, müssen Sie es automatisch hinzufügen:
[root@localhost~]#echo"/bin/false">>/etc/shells
[root@localhost~]#echo"/bin/true">>/etc/shells
2. Benutzerpasswortdatei
Aus Sicherheitsgründen wird das echte Passwort des Benutzers mit dem MD5-Verschlüsselungsalgorithmus verschlüsselt und in der Konfigurationsdatei /etc/shadow gespeichert. Diese Datei kann nur vom Root-Benutzer gelesen werden.
Ähnlich wie die passwd-Datei definiert und speichert auch die Shadow-Datei relevante Informationen eines Kontos pro Zeile. Das erste Array ist der Name des Benutzerkontos und das zweite Array ist das Kontokennwort.
3. Benutzergruppenkontodatei
Benutzergruppenkontoinformationen werden in der Konfigurationsdatei /etc/group gespeichert. Was ist die Benutzerkonfigurationsdatei des Linux-Systems? Jeder Benutzer kann sie lesen. Das echte Passwort der Benutzergruppe wird in der Konfigurationsdatei /etc/gshadow gespeichert.
In der Gruppe stellt das erste Array den Namen der Benutzergruppe dar, das zweite Array ist x, das dritte ist die ID-Nummer der Benutzergruppe und das vierte ist die Liste der Benutzermitglieder der Benutzergruppe, jeweils mit Doppelpunkten dazwischen Benutzername Separat.4. Benutzer hinzufügen
Um einen neuen Benutzer zu erstellen oder hinzuzufügen, verwenden Sie den Befehl useradd. Die Befehlsverwendung ist:
useradd[option]Benutzername
Dieser Befehl hat viele Optionen, die am häufigsten verwendeten sind:
-c Kommentarbenutzer legt den Kommentarbeschreibungstext für das Konto fest
-d Home-Verzeichnis gibt das Home-Verzeichnis an, das das Standardverzeichnis /home/username
ersetzen soll-m Wenn das Home-Verzeichnis nicht existiert, erstellen Sie es. -r in Kombination mit -m erstellt ein Home-Verzeichnis für das Systemkonto
-M erstellt kein Home-Verzeichnis
-edate gibt das Datum an, an dem das Konto abläuft. Das Datumsformat ist MM/TT/JJ
Das-fdays-Konto wird nach Ablauf einiger Tage dauerhaft gesperrt. Wenn es als -1 angegeben ist, wird es sofort angehalten. Wenn es -1 ist, wird diese Funktion deaktiviert
-g Benutzergruppe gibt an, zu welcher Benutzergruppe der Benutzer hinzugefügt werden soll. Die Benutzergruppe muss vorhanden sein
-G Benutzergruppenliste gibt die Liste der Benutzergruppen an, denen der Benutzer gleichzeitig beitritt. Jede Gruppe wird durch Kommas getrennt
-nErstellen Sie keine privaten Benutzergruppen für Benutzer
-sshell gibt die Shell an, die beim Anmelden des Benutzers verwendet wird. Der Standardwert ist /bin/bash
-r erstellt ein Systemkonto mit einer Benutzer-ID größer als 500. Das entsprechende Home-Verzeichnis wird standardmäßig nicht erstellt
-uUser ID gibt automatisch den ID-Wert des neuen Benutzers an, der eindeutig sein und kleiner als 499 sein muss
-ppassword gibt das Login-Passwort für den neuen Benutzer an. Das Kennwort ist hier der Kennwortwert, der nach der MD5-Verschlüsselung des entsprechenden Anmeldekennworts erhalten wird und nicht mit dem Originaltext des tatsächlichen Kennworts übereinstimmt. Daher wird diese Parameteroption in tatsächlichen Anwendungen selten verwendet und der Befehl passwd wird im Allgemeinen allein verwendet um das Login-Passwort für den Benutzer festzulegen.
Beispiel:
Um einen Benutzer namens nisj als Mitglied der babyfish-Benutzergruppe zu erstellen, lautet der Operationsbefehl:
[root@localhost~]#useradd-gbabyfishnisj
[root@localhost~]#idnisj
uid=502(nisj)gid=500(babyfish)groups=500(babyfish)
[root@localhost~]#tail-1/etc/passwd
nisj:x:502:500::/home/nisj:/bin/bash
Wenn beim Hinzufügen eines Benutzers die Benutzergruppe nicht mit dem Parameter -g angegeben wird, erstellt das System standardmäßig manuell eine private Benutzergruppe mit demselben Namen wie das Benutzerkonto. Wenn Sie diese private Benutzergruppe nicht erstellen müssen, können Sie den Parameter -n verwenden.
Wenn Sie beispielsweise ein Konto mit dem Namen nsj820 hinzufügen, aber keine Benutzergruppe angeben, lautet das Ergebnis des Vorgangs:
[root@localhost~]#useraddnsj820
[root@localhost~]#idnsj820
uid=503(nsj820)gid=503(nsj820)groups=503(nsj820)
[root@localhost~]#tail-1/etc/passwd
nsj820:x:503:503::/home/nsj820:/bin/bash
[root@localhost~]#tail-2/etc/passwd
nisj:x:502:500::/home/nisj:/bin/bash
nsj820:x:503:503::/home/nsj820:/bin/bash#Das System hat manuell eine Benutzergruppe namens nsj820 mit der ID-Nummer 503 erstellt
Beim Erstellen eines Benutzerkontos erstellt das System manuell das dem Benutzer entsprechende Home-Verzeichnis. Wenn Sie den Speicherort ändern möchten, können Sie ihn mit dem Parameter -d angeben. Die vom Benutzer zum Anmelden verwendete Shell lautet standardmäßig /bin/bash. Wenn Sie sie ändern möchten, verwenden Sie den Parameter -s, um
anzugebenWenn Sie beispielsweise ein Konto mit dem Namen vodup erstellen möchten, das Home-Verzeichnis im Verzeichnis /var platzieren und die Anmelde-Shell als /sbin/nologin angeben, lautet der Operationsbefehl:
[root@localhost~]#useradd-d/var/vodup-s/sbin/nologinvodup
[root@localhost~]#idvodup
uid=504(vodup)gid=504(vodup)groups=504(vodup)
[root@localhost~]#tail-1/etc/passwd
vodup:x:504:504::/var/vodup:/sbin/nologin
[root@localhost~]#tail-1/etc/group
vodup:x:504:
5. Kontoattribute festlegen
Für bereits erstellte Benutzer können Sie den Befehl usermod verwenden, um verschiedene Attribute des Kontos zu ändern und festzulegen, einschließlich Anmeldename, Home-Verzeichnis, Benutzergruppe, Anmelde-Shell usw. Die Verwendung dieses Befehls ist:
Benutzermod[Option]Benutzername
Einige Optionen
(1) Benutzerkontonamen ändern
Verwenden Sie dazu den Parameter -l. Die Befehlsverwendung lautet:
usermod-l neuer Benutzername, ursprünglicher Benutzername
Wenn Sie beispielsweise den Benutzer nsj820 in nsj0820 umbenennen möchten, lautet der Operationsbefehl:
[root@localhost~]#usermod-lnsj0820nsj820
[root@localhost~]#idnsj0820
uid=503(nsj0820)gid=503(nsj820)groups=503(nsj820)
[root@localhost~]#tail-1/etc/passwd
nsj0820:x:503:503::/home/nsj820:/bin/bash
Wie aus der Ausgabe ersichtlich ist, wurde der Benutzername in nsj0820 geändert. Das Hauptverzeichnis ist immer noch das ursprüngliche /home/nsj820Was ist die Linux-Systembenutzerkonfigurationsdatei?, Sie können dies tun, indem Sie den folgenden Befehl ausführen
[root@localhost~]#usermod-d/home/nsj0820nsj0820
[root@localhost~]#idnsj0820
uid=503(nsj0820)gid=503(nsj820)groups=503(nsj820)
[root@localhost~]#tail-1/etc/passwd
nsj0820:x:503:503::/home/nsj0820:/bin/bash
[root@localhosthome]#mv/home/nsj820/home/nsj0820
(2) Konto sperren
Wenn Sie einem Benutzer vorübergehend die Anmeldung verbieten möchten, können Sie das Benutzerkonto sperren. Das Sperren des Kontos kann mit Hilfe des Parameters -L erfolgen. Die Befehlsverwendung lautet:
usermod -L Konto zum Sperren
Linux sperrt einen Benutzer, indem es „!“ vor dem Passwort-Array des Passwortdateischattens hinzufügt, um anzuzeigen, dass der Benutzer gesperrt ist.
[root@localhosthome]#usermod-Lnsj0820
[root@localhosthome]#tail-1/etc/shadow
nsj0820:!$1$JEW25RtU$X9kIdwJi/HPzSKMVe3EK30:16910:0:99999:7:::
Aber Sie können den Root-Benutzer eingeben und dann zum gesperrten Benutzer su wechseln.
(3) Konto entsperren
Um ein Konto zu entsperren, können Sie den Befehl usermod mit dem Parameter -U verwenden.
[root@localhost~]#usermod-Unsj0820
[root@localhost~]#tail-1/etc/shadow
nsj0820:$1$JEW25RtU$X9kIdwJi/HPzSKMVe3EK30:16910:0:99999:7:::
6. Konto löschen
Um ein Konto zu löschen, können Sie den Befehl userdel verwenden. Seine Verwendung ist:
userdel[-r] Kontoname
-r ist optional. Wenn dieser Parameter angegeben wird, wird das dem Konto entsprechende Home-Verzeichnis gleichzeitig mit dem Löschen des Kontos gelöscht.
[root@localhost~]#userdel-rnsj0820
Um die Ablaufzeit aller Benutzerkonto-Passwörter festzulegen, können Sie dies tun, indem Sie den Wert des Konfigurationselements PASS_MAX_DAYS in der Konfigurationsdatei /etc/login.defs ändern. Der Standardwert ist 99999, was bedeutet, dass Benutzerkonto-Passwörter niemals gültig sind erlöschen. Das Konfigurationselement PASS_MIN_LEN wird verwendet, um die Mindestbreite des Kontokennworts anzugeben, die standardmäßig 5 Zeichen beträgt.
7. Benutzer-Login-Passwort festlegen
Verwenden Sie den passwd-Befehl, um es festzulegen. Die Befehlsverwendung ist:
passwd[Kontoname]
Wenn ein Kontoname angegeben wird, wird das Anmeldekennwort des angegebenen Kontos festgelegt und das ursprüngliche Kennwort manuell überschrieben. Nur der Root-Benutzer hat die Berechtigung, das Passwort für ein bestimmtes Konto festzulegen. Normalerweise können Benutzer nur das Passwort für ihr eigenes Konto festlegen oder ändern (ohne Parameter).
Wenn Sie beispielsweise das Anmeldekennwort des nisj-Kontos festlegen möchten, lautet der Betriebsbefehl:
[root@localhosthome]#passwdnisj
Passwort für Benutzernisj ändern.
Neues Passwort:
BADPASSWORD:itistooshort
BADPASSWORD:istoosimple
Neues Passwort erneut eingeben:
passwd:alle Authentifizierungstokenserfolgreich aktualisiert.
Nachdem das Konto-Anmeldekennwort festgelegt wurde, kann sich das Konto beim System anmelden.
8. Kontopasswort sperren/entsperren und Passwortstatus überprüfen, Kontopasswort löschen
Beim Löschen eines Verzeichnisses unter LINUX kann nicht nur das Benutzerkonto, sondern auch das Kontokennwort gesperrt werden. Nachdem eine Partei gesperrt wurde, kann sie sich nicht mehr am System anmelden. Nur der Root-Benutzer hat das Recht, diesen Befehl auszuführen. Um das Kontokennwort zu sperren, verwenden Sie den Befehl passwd mit der Option -l. Seine Verwendung ist:
passwd-l-Kontoname
passwd-uaccountname#Kontopasswort entsperren
[root@localhosthome]#passwd-lnisj
Passwort für Benutzer sperren.
passwd:Erfolg
[root@localhosthome]#passwd-unisj
Passwort für Benutzernisj entsperren.
passwd:Erfolg
Um zu überprüfen, ob das Passwort des aktuellen Kontos gesperrt ist, können Sie den Befehl passwd mit dem Parameter -S verwenden. Seine Verwendung ist:
passwd-S-Kontoname
Zum Beispiel
[root@localhosthome]#passwd-Snisj
Das obige ist der detaillierte Inhalt vonAnwendungssystemeinstellungen von Benutzer- und Benutzergruppendateien unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!