So ändern Sie Benutzerdaten mit chfn und usermod unter Linux

Ein Benutzerkonto ist mehr als ein Benutzername. Erfahren Sie, wie Sie alle mit einem Linux-Benutzerkonto verknüpften Metadaten über die Befehlszeile festlegen und ändern.

Was ist in einem Namen?

Wenn Sie einen Linux- oder Unix-ähnlichen Computer verwenden, haben Sie ein Benutzerkonto. Der dem Konto zugewiesene Name ist Ihr Benutzerkontoname. Dies ist der Name, mit dem Sie sich anmelden. Es ist auch (standardmäßig) der Name Ihrer Login-Gruppe und der Name Ihres Home-Verzeichnisses. Sie verwenden alle denselben Bezeichner.

Für jedes Benutzerkonto können weitere Informationen gespeichert werden. Reale Daten wie beispielsweise der vollständige Name der Person, ihre Büronummer und ihre geschäftliche Telefonnummer können definiert und an diese angehängt werden. Tatsächlich können Benutzerkonten völlig beliebige Informationsschnipsel zugeordnet werden.

In der Praxis ist dies für Systemadministratoren nützlicher, die sich um Computer kümmern, auf denen viele Benutzerkonten konfiguriert sind. Aber auch für den Single-User-Linux-Rechner ist es immer interessant zu wissen, was sich unter der Haube abspielt.

Das GECOS-Feld

Einst hatten die Unix-Pioniere keinen eigenen Drucker. Sie mussten ihre Druckaufträge auf ein Allgemeine Elektrik Mainframe, auf dem die General Electric umfassendes Betriebssystem (GECOS). Um dies zu erreichen, mussten die Benutzer auf den Unix-Systemen die Zugangsdaten eines Kontos auf dem GECOS-System speichern und verwenden.

Das GECOS-Feld wurde erstellt, um diese Anmeldeinformationen zu speichern. Genau diese Nischenanforderung ist längst Geschichte, und das GECOS-Feld wurde umfunktioniert, um andere Daten in Bezug auf den Besitzer des Benutzerkontos zu speichern. Es kann einen neuen Job haben, aber es behält seinen alten Namen. Es wird immer noch als GECOS-Feld bezeichnet.

Das Feld wird zusammen mit anderen Informationen zum Benutzerkonto in der Datei /etc/passwd gespeichert:

Der Benutzername des Kontos.
Die Benutzer-ID.
Die Gruppen-ID.
Der Pfad zum Home-Verzeichnis für das Benutzerkonto.
Die Shell, die gestartet wird, wenn sich der Benutzer anmeldet.

Hier ist der Finger Befehl und die kleiner Finger Befehl die angezeigten Informationen abrufen.

Das chfn-Kommando

Mit chfn (Fingerinformationen ändern) können Sie die im GECOS-Feld gespeicherten Informationen einstellen und ändern. Die Informationen werden als durch Kommas getrennte Liste innerhalb des Felds gespeichert.

Der Befehl chfn war bereits auf Ubuntu 18.04.1 und Manjaro 18.1.0 vorhanden. Es musste auf Fedora 31 installiert werden. Verwenden Sie diesen Befehl, um es zu installieren:

sudo dnf install util-linux-user

Mal sehen, was Finger über den Besitzer des Benutzerkontos „dave“ herausfinden kann. Um die maximalen Informationen zu erhalten, verwenden wir die Option -l (langes Format):

finger dave -l

Dies könnte gefunden werden:

  So fügen Sie den Facebook Messenger-Chat unter Linux mit Pidgin IM hinzu

Es ruft den Benutzernamen des Kontos, das Home-Verzeichnis und die Standard-Shell ab. Diese beziehen sich alle auf das Benutzerkonto. Sie beziehen sich nicht auf die echte Person, die dieses Konto verwendet. Wir können den Befehl chfn verwenden, um Informationen über die tatsächliche Person zu speichern.

chfn dave

Die Verwendung von chfn auf diese Weise startet einen kurzen, interaktiven Prozess. Sie werden aufgefordert, für jede Information, die das GECOS-Feld enthalten kann, einen Datenwert einzugeben. Der aktuelle Wert für jeden Datenwert wird in Klammern angezeigt []. Wenn Sie die aktuellen Daten behalten möchten, drücken Sie die „Enter“-Taste, der Wert in den Klammern bleibt erhalten.

Die von uns eingegebenen Informationen waren:

Zimmernummer: 512
Arbeitstelefon: 555-4567
Telefon zu Hause: 555-5432

Lassen Sie uns überprüfen, ob der Finger diese neuen Informationen aufnimmt:

finger dave -l

Ja tut es. Aber Sie haben vielleicht bemerkt, dass Sie nicht aufgefordert wurden, den vollständigen Namen zu ändern. Das geht nur, wenn Sie sudo verwenden. Aber wir müssen nicht die ganze chfn-Sitzung noch einmal durchgehen, nur weil wir vergessen haben, sudo zu verwenden. Wir können jeden der Datenwerte einzeln ändern.

Ändern der einzelnen Datenwerte

Wir können den vollständigen Namen für den Besitzer des Benutzerkontos festlegen, indem wir die Option -f (vollständiger Name) zusammen mit sudo verwenden.

sudo chfn -f "Dave McKay" dave

sudo chfn -f

Und wenn wir noch einmal mit dem Finger prüfen:

Wir können sehen, dass der vollständige Name hinzugefügt wurde.

Es gibt andere Optionen, um die Zimmernummer, die private Telefonnummer und die geschäftliche Telefonnummer zu ändern. Um die Zimmernummer (Büronummer) zu ändern, verwenden Sie die Option -r (Zimmernummer):

sudo chfn -r 633 dave

Beachten Sie, dass Sie bei einigen Distributionen die Option -o (Büroraumnummer) anstelle der Option -r verwenden können. Mehr dazu in Kürze. Um die Optionen für Ihre Version von chfn anzuzeigen, verwenden Sie zunächst:

man chfn

Um die Bürotelefonnummer zu ändern, verwenden Sie die Option -w (Arbeitstelefon):

sudo chfn -w 555-1122 dave

Und schließlich, um die private Telefonnummer zu ändern, verwenden Sie die Option -h (private Telefonnummer):

sudo chfn -h 555-6576 dave

Lassen Sie uns erneut finger verwenden, um zu sehen, ob alle diese Änderungen akzeptiert wurden:

finger dave -l

Erfolg. Alle diese Befehle haben funktioniert und die Datenwerte wurden aktualisiert.

  So verwenden Sie Meld, um Änderungen in Dateien unter Linux zu vergleichen

Verwenden von chfn für andere Benutzerkonten

So viel zur Änderung unserer eigenen Informationen, wie sieht es mit der Änderung der GECOS-Informationen für andere Benutzer aus? Das ist genauso einfach. Sie müssen sudo verwenden, wenn Sie dies tun, aber das ist der einzige Unterschied. Sehen wir uns an, welche Daten für das Benutzerkonto mary eingestellt sind:

finger mary -l

Für dieses Benutzerkonto sind die üblichen Standardinformationen eingestellt. Lassen Sie uns die Informationen ergänzen:

sudo chfn mary

Wir durchlaufen dieselbe Sitzung wie zuvor und werden aufgefordert, für jede speicherbare Information einen Datenwert einzugeben. Und weil wir sudo verwendet haben, werden wir nach dem vollständigen Namensdatenwert gefragt.

Warten Sie einen Moment, was ist das letzte Element namens „Sonstiges?“

es wird nicht von allen chfn-Versionen unterstützt und Sie sehen es nur, wenn Sie sudo verwenden, weshalb wir es nicht früher gesehen haben, als wir (absichtlich) kein sudo mit verwendet haben:

chfn dave

Der Datenwert „Andere“ kann alles enthalten, was Sie möchten. Es hat keine vorgeschriebene oder erwartete Verwendung.

Versionen von chfn, die das Feld „Other“ unterstützen, bieten auch die Option -o (andere), um diesen Wert direkt zu ändern. Wegen des Konflikts zwischen -o für „Büronummer“ und -o für „sonstiges“ verwenden manche Systeme -r für „Zimmernummer“.

Wir können die für das Benutzerkonto mary in der Datei /etc/paswd gespeicherten Daten sehen, indem wir weniger verwenden:

less /etc/passwd

Auf Systemen, die dies unterstützen (prüfen Sie die Manpage für Ihre Version von chfn ) können Sie das Feld „andere“ direkt mit der Option -o (andere) setzen:

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o

Und wir können die Daten für das Benutzerkonto dave mit dem Befehl less überprüfen:

less /etc/passwd

[AsswdineinemTerminalfenster“width=“646″height=“382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Das wirft eine offensichtliche Frage auf. Wenn Ihre Version von chfn das Feld „Sonstige“ nicht unterstützt, wie können Sie es ändern? Das können wir mit dem Befehl usermod tun.

Der usermod-Befehl

Mit dem Befehl usermod können Sie Aspekte eines Benutzerkontos ändern durch solche Aktionen wie das Hinzufügen oder Entfernen des Benutzerkontos zu Gruppen und das Ändern ihrer Standard-Shell. Es kann auch verwendet werden, um das GECOS-Feld direkt zu manipulieren.

  5 Gnome-Shell-Erweiterungen zur Verbesserung Ihres Linux-Desktops

Schauen wir uns die Zeile in der Datei /etc/passwd für das Benutzerkonto mary genauer an. Wir verwenden grep, um diese Zeile für uns zu isolieren. Dies funktioniert, da Benutzernamen eindeutig sein müssen. Es kann nur ein Benutzerkonto namens mary geben.

grep mary /etc/passwd

Die Felder in der Datei etc/passwd werden angezeigt. Als Feldtrennzeichen wird ein Doppelpunkt „:“ verwendet. Von links nach rechts sind die Felder:

Der Benutzername des Kontos.
Ein „x“, das das Passwort für dieses Benutzerkonto angibt, wird in der Datei /etc/shadow verschlüsselt gespeichert.
Die Benutzer-ID für das Mary-Benutzerkonto.
Die Gruppen-ID für das Mary-Benutzerkonto.
Das GECOS-Feld.
Der Pfad zum Home-Verzeichnis für das Mary-Benutzerkonto.
Die Shell, die gestartet wird, wenn sich der Besitzer des Mary-Kontos anmeldet.

Als Trennzeichen für die Datenwerte innerhalb des GECOS-Feldes wird ein Komma „“, verwendet. Die Werte im GECOS-Feld sind von links nach rechts:

Vollständiger Name.
Zimmer- (oder Büro-) Nummer.
Telefonnummer beruflich.
Festnetznummer.
Andere Informationen.

Beachten Sie, dass der Befehl usermod das gesamte GECOS-Feld auf den neuen Wert setzt, den Sie angeben. Wenn Sie nur den vollständigen Namen der Person angeben, steht im GECOS-Feld nur der vollständige Name. Das bedeutet, dass Sie alle vorhandenen Datenwerte angeben müssen, die Sie behalten möchten.

Hier ist ein Beispiel. Die Benutzerin Mary wurde befördert und wird in den vierten Stock umziehen. Sie bekommt eine neue Büronummer, eine neue geschäftliche Telefonnummer, und wir werden ihren zweiten Vornamen hinzufügen. Ihr Feldwert „Sonstiges“ wird sich ebenfalls ändern. Obwohl sich ihre private Telefonnummer nicht ändern wird, müssen wir sie usermod im String mitteilen.

Wir müssen die Option -c (Kommentar) verwenden und den Befehl mit sudo ausführen.

sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary

sudo usermod -c

Die Verwendung von grep zum Berichten über den Inhalt der Datei /etc/passwd für mary zeigt uns, dass die neuen Werte hinzugefügt wurden.

grep mary /etc/passwd

Alles ist Fluss, nichts bleibt

Ungenaue Daten sind wertlos. Wenn sich die Informationen über Personen ändern – Büroumzüge, Namensänderungen, Rollentitel – können Sie ihre Metadaten einfach aktualisieren, um die aktuelle Position widerzuspiegeln.