Gebruikersgegevens wijzigen met chfn en usermod op Linux

Een gebruikersaccount is meer dan een gebruikersnaam. Leer hoe u vanaf de opdrachtregel alle metagegevens die aan een Linux-gebruikersaccount zijn gekoppeld, instelt en wijzigt.

Wat zit er in een naam?

Als je een Linux- of Unix-achtige computer gebruikt, heb je een gebruikersaccount. De naam die aan het account wordt gegeven, is de naam van uw gebruikersaccount. Dit is de naam waarmee u inlogt. Het is ook (standaard) de naam van uw inloggroep en de naam van uw homedirectory. Ze gebruiken allemaal dezelfde identifier.

Er is nog een set informatie die voor elk gebruikersaccount kan worden opgeslagen. Gegevens uit de echte wereld, zoals de volledige naam van de persoon, hun kantoornummer en hun telefoonnummer op het werk, kunnen bijvoorbeeld worden gedefinieerd en eraan worden gekoppeld. Inderdaad, volledig willekeurige informatiefragmenten kunnen worden getagd aan gebruikersaccounts.

In de praktijk zal dit nuttiger zijn voor systeembeheerders die voor computers zorgen waarop veel gebruikersaccounts zijn geconfigureerd. Maar zelfs voor de Linux-computer voor één gebruiker is het altijd interessant om te weten wat er zich onder de motorkap afspeelt.

Het GECOS-veld

Ooit hadden de pioniers van Unix geen eigen printer. Ze moesten hun afdruktaken spoolen naar een General Electric mainframe waarop de draaide Algemeen elektrisch uitgebreid besturingssysteem (GECO). Om dat te bereiken, moesten de gebruikers op de Unix-systemen de inloggegevens van een account op het GECOS-systeem opslaan en gebruiken.

Het GECOS-veld is gemaakt om die referenties op te slaan. Die nichevereiste is allang verleden tijd en het GECOS-veld is opnieuw gebruikt om andere gegevens met betrekking tot de eigenaar van het gebruikersaccount op te slaan. Het heeft misschien een nieuwe baan, maar het behoudt zijn oude naam. Het wordt nog steeds het GECOS-veld genoemd.

Het veld wordt opgeslagen in het bestand /etc/passwd, samen met andere informatie over het gebruikersaccount:

De gebruikersnaam van het account.
De gebruikers-ID.
De groeps-ID.
Het pad naar de basismap voor het gebruikersaccount.
De shell die wordt gestart wanneer de gebruiker inlogt.

Dit is waar de vinger commando en de pinky opdracht de informatie ophalen die ze weergeven.

Het chfn-commando

Met de chfn (vingerinformatie wijzigen) kunt u: instellen en wijzigen van de informatie die is opgeslagen in het GECOS-veld. De informatie wordt opgeslagen als een door komma’s gescheiden lijst in het veld.

  Hoe LXQt op Linux te installeren

Het chfn-commando was al aanwezig op Ubuntu 18.04.1 en Manjaro 18.1.0. Het moest op Fedora 31 worden geïnstalleerd. Gebruik dit commando om het te installeren:

sudo dnf install util-linux-user

Laten we eens kijken welke vinger te weten kan komen over de eigenaar van het gebruikersaccount ‘dave’. Om de maximale informatie te krijgen, gebruiken we de -l (lang formaat) optie:

finger dave -l

Dit is wat het zou kunnen vinden:

Het haalt de gebruikersnaam van het account, de homedirectory en de standaardshell op. Deze zijn allemaal gerelateerd aan het gebruikersaccount. Ze verwijzen niet naar de echte persoon die dat account gebruikt. We kunnen het chfn-commando gebruiken om informatie over de werkelijke persoon op te slaan.

chfn dave

Het op deze manier gebruiken van chfn start een kort, interactief proces. U wordt gevraagd een gegevenswaarde in te voeren voor elk stukje informatie dat het GECOS-veld kan bevatten. De huidige waarde voor elke gegevenswaarde wordt tussen haakjes weergegeven []. Als u de huidige gegevens wilt behouden, kunt u op de “Enter”-toets drukken en de waarde tussen de haakjes blijft behouden.

De informatie die we invoerden was:

Kamernummer: 512
Werktelefoon: 555-4567
Telefoon thuis: 555-5432

Laten we eens kijken of die vinger die nieuwe informatie oppikt:

finger dave -l

Ja dat doet het. Maar je hebt misschien gemerkt dat er niet werd gevraagd om de volledige naam te wijzigen. Het zal dat alleen doen als je sudo gebruikt. Maar we hoeven niet de hele chfn-sessie opnieuw te doorlopen, alleen maar omdat we sudo zijn vergeten te gebruiken. We kunnen elk van de gegevenswaarden afzonderlijk wijzigen.

De individuele gegevenswaarden wijzigen

We kunnen de volledige naam voor de eigenaar van het gebruikersaccount instellen door de -f (volledige naam) optie te gebruiken, samen met sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f

En als we nog een keer met de vinger controleren:

We kunnen zien dat de volledige naam is toegevoegd.

Er zijn andere opties om het kamernummer, het huistelefoonnummer en het werktelefoonnummer te wijzigen. Gebruik de optie -r (kamernummer) om het kamernummer (kantoor) te wijzigen:

sudo chfn -r 633 dave

Merk op dat u bij sommige distributies de optie -o (kantoorruimtenummer) kunt gebruiken in plaats van de -r optie. Hierover binnenkort meer. Voor nu, om de opties voor uw versie van chfn te zien, gebruikt u:

man chfn

Gebruik de optie -w (werktelefoon) om het telefoonnummer op kantoor te wijzigen:

sudo chfn -w 555-1122 dave

En tot slot, om het huistelefoonnummer te wijzigen, gebruikt u de optie -h (thuistelefoonnummer):

sudo chfn -h 555-6576 dave

Laten we de vinger opnieuw gebruiken om te zien of al die wijzigingen zijn geaccepteerd:

finger dave -l

Succes. Al deze opdrachten hebben gewerkt en de gegevenswaarden zijn bijgewerkt.

  Achtergrondprocessen uitvoeren en besturen op Linux

chfn gebruiken op andere gebruikersaccounts

Tot zover het wijzigen van onze eigen informatie, hoe zit het met het wijzigen van de GECOS-informatie voor andere gebruikers? Dat is net zo gemakkelijk. Je moet sudo gebruiken als je dat doet, maar dat is het enige verschil. Laten we eens kijken welke gegevens zijn ingesteld voor het gebruikersaccount Mary:

finger mary -l

De gebruikelijke standaardinformatie is ingesteld voor dit gebruikersaccount. Laten we de informatie aanvullen:

sudo chfn mary

We doorlopen dezelfde sessie als voorheen, waarbij we worden gevraagd om een ​​gegevenswaarde voor elk stukje informatie dat kan worden opgeslagen. En omdat we sudo hebben gebruikt, wordt ons gevraagd om de gegevenswaarde voor de volledige naam.

Wacht even, wat is dat laatste item, genaamd “Anders?”

het wordt niet door alle versies van chfn ondersteund, en je ziet het alleen als je sudo gebruikt, daarom hebben we het niet eerder gezien toen we (opzettelijk) sudo niet gebruikten met:

chfn dave

De gegevenswaarde “Overige” kan alles bevatten wat u maar wilt. Het heeft geen voorgeschreven of verwacht gebruik.

Versies van chfn die het veld “Other” ondersteunen, bieden ook de optie -o (other) om deze waarde rechtstreeks te wijzigen. Het is vanwege het conflict tussen -o voor “kantoornummer” en -o voor “overig” dat sommige systemen -r gebruiken voor “kamernummer”.

We kunnen de gegevens zien die zijn opgeslagen voor gebruikersaccount mary in het /etc/paswd-bestand, door minder te gebruiken:

less /etc/passwd

Op systemen die dit ondersteunen (controleer de man-pagina voor uw versie van chfn ) kunt u het veld “other” rechtstreeks instellen met behulp van de -o (other) optie:

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o

En we kunnen de gegevens voor gebruikersaccount Dave controleren met de opdracht less:

less /etc/passwd

[asswdineenterminalvenster”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Dat roept een voor de hand liggende vraag op. Als uw versie van chfn het veld “Other” niet ondersteunt, hoe kunt u dit dan wijzigen? We kunnen dat doen met het usermod commando.

  Hoe Overwatch op Linux te spelen

Het usermod-commando

Met de opdracht usermod kunt u: aspecten van een gebruikersaccount wijzigen door acties zoals het toevoegen of verwijderen van het gebruikersaccount van groepen en het wijzigen van hun standaardshell. Het kan ook worden gebruikt om het GECOS-veld direct te manipuleren.

Laten we de regel in het /etc/passwd-bestand voor gebruikersaccount mary eens nader bekijken. We gebruiken grep om die regel voor ons te isoleren. Dit werkt omdat gebruikersnamen uniek moeten zijn. Er kan maar één gebruikersaccount zijn met de naam mary.

grep mary /etc/passwd

De velden in het etc/passwd-bestand worden weergegeven. Een dubbele punt “:” wordt gebruikt als veldscheidingsteken. van links naar rechts zijn de velden:

De gebruikersnaam van het account.
Een “x” die het wachtwoord voor dit gebruikersaccount aangeeft, wordt versleuteld bewaard in het /etc/shadow-bestand.
De gebruikers-ID voor het Mary-gebruikersaccount.
De groeps-ID voor het Mary-gebruikersaccount.
Het GECOS-veld.
Het pad naar de homedirectory voor het Mary-gebruikersaccount.
De shell die wordt gestart wanneer de eigenaar van het Mary-account inlogt.

Een komma “,” wordt gebruikt als scheidingsteken voor de gegevenswaarden in het GECOS-veld. De waarden in het GECOS-veld zijn, van links naar rechts:

Voor-en achternaam.
Kamer (of kantoor) nummer.
Telefoonnummer werk.
Telefoonnummer thuis.
Andere informatie.

Merk op dat de opdracht usermod het hele GECOS-veld instelt op de nieuwe waarde die u opgeeft. Als u alleen de volledige naam van de persoon opgeeft, is het enige in het GECOS-veld de volledige naam. Dit betekent dat u eventuele bestaande gegevenswaarden moet opgeven die u wilt behouden.

Hier is een voorbeeld. De gebruiker Mary is gepromoveerd en ze gaat verhuizen naar de vierde verdieping. Ze krijgt een nieuw kantoornummer, een nieuw werktelefoonnummer en we gaan haar tweede naam toevoegen. Haar veldwaarde “Overig” gaat ook veranderen. Hoewel haar telefoonnummer thuis niet zal veranderen, moeten we dit in de string aan usermod doorgeven.

We moeten de -c (commentaar) optie gebruiken en we moeten de opdracht uitvoeren met sudo.

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

sudo usermod -c

Door grep te gebruiken om te rapporteren over de inhoud van het /etc/passwd-bestand voor mary, zien we dat de nieuwe waarden zijn toegevoegd.

grep mary /etc/passwd

Alles is Flux, niets blijft

Onjuiste gegevens zijn waardeloos. Wanneer de informatie over mensen verandert – kantoorverhuizingen, naamswijzigingen, roltitels – kunt u hun metagegevens eenvoudig bijwerken om de huidige positie weer te geven.

gerelateerde berichten