Gebruikersgegevens wijzigen met chfn en usermod op Linux

Een Linux-terminalvenster op een laptop in Ubuntu-stijl.
Fatmawati Achmad Zaenuri / Shutterstock

Een gebruikersaccount is meer dan een gebruikersnaam. Leer hoe u vanaf de opdrachtregel alle metagegevens kunt instellen en wijzigen die aan een Linux-gebruikersaccount zijn gekoppeld.

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 is gegeven, is uw gebruikersnaam. 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 identificatie.

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, het nummer van het kantoor en het telefoonnummer op het werk, kunnen worden gedefinieerd en eraan worden toegevoegd. In feite kunnen volledig willekeurige stukjes informatie worden getagd aan gebruikersaccounts.

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

Het GECOS-veld

Ooit hadden de pioniers van Unix geen eigen printer. Ze moesten hun printopdrachten naar een General Electric-mainframe spoelen waarop het General Electric Comprehensive Operating System (GECOS) draaide. 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 gegevens op te slaan. Die niche-eis is allang in de geschiedenis verdwenen en het GECOS-veld is opnieuw bedoeld om andere gegevens op te slaan met betrekking tot de eigenaar van het gebruikersaccount. 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 /etc/passwd bestand, samen met andere informatie over het gebruikersaccount:

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

Dit is waar het vingercommando en het pinkcommando de informatie ophalen die ze weergeven.

VERWANT: Hoe de vingeropdracht op Linux te gebruiken

Het chfn-commando

De chfn (vingerinformatie wijzigen) stelt u in staat om de informatie die is opgeslagen in het GECOS-veld in te stellen en te wijzigen. De informatie wordt in het veld opgeslagen als een door komma’s gescheiden lijst.

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

sudo dnf install util-linux-user

sudo dnf install util-linux-user in een terminalvenster

Eens kijken wat finger kan informatie vinden over de eigenaar van het gebruikersaccount ‘dave’. Om de maximale informatie te krijgen, gebruiken we de -l (lang formaat) optie:

finger dave -l

vinger dave -l in een terminalvenster

Dit is wat het zou kunnen vinden:

Uitvoer van vinger dave -l in een terminalvenster

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

chfn dave

chfn dave in een terminalvenster

Gebruik makend van chfn op deze manier 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.

Het interactieve proces van chfn in een terminalvenster

De informatie die we hebben ingevoerd was:

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

Voltooide chfn-sessie in een terminalvenster

Laten we dat eens kijken finger pikt die nieuwe informatie op:

finger dave -l

vinger dave -l in een terminalvenster

Ja dat doet het. Maar het is je misschien opgevallen dat er niet werd gevraagd om de volledige naam te wijzigen. Het zal dat alleen doen als u gebruikt sudo. Maar we hoeven niet het geheel te doorlopen chfn sessie opnieuw, alleen omdat we vergaten te gebruiken sudo. We kunnen alle 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, samen met sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f "Dave McKay" dave in een terminalvenster

En als we nog eens kijken met finger:

Uitvoer van vinger in een terminalvenster

We kunnen zien dat de volledige naam is toegevoegd.

Er zijn andere opties om het kamernummer, het telefoonnummer thuis en het telefoonnummer op het werk te wijzigen. Gebruik de om het kamer- (kantoor) nummer te wijzigen -r (kamernummer) optie:

sudo chfn -r 633 dave

sudo chfn -r 633 dave in een terminalvenster

Merk op dat u bij sommige distributies de -o (kantoorkamernummer) optie in plaats van de -r optie. Hierover binnenkort meer. Om de opties voor uw versie van chfn, gebruik:

man chfn

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

sudo chfn -w 555-1122 dave

sudo chfn -w 555-1122 dave in een terminalvenster

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

sudo chfn -h 555-6576 dave

sudo chfn -h 555-6576 dave in een terminalvenster

Laten we gebruiken finger nogmaals om te zien of al deze wijzigingen zijn geaccepteerd:

finger dave -l

vinger dave -l in een terminalvenster

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

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 eenvoudig. Je moet gebruiken sudo als je dat doet, maar dat is het enige verschil. Laten we eens kijken welke gegevens zijn ingesteld voor gebruikersaccount Mary:

finger mary -l

vinger mary -l in een terminalvenster

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

sudo chfn mary

sudo chfn mary in een terminalvenster

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

Afgeronde sessie voor sudo chfn mary in een terminalvenster

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

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

chfn dave

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

Versies van chfn die het veld ‘Overige’ ondersteunen, bieden ook de -o (andere) optie om deze waarde direct te wijzigen. Het is vanwege het conflict tussen -o voor “kantoornummer” en -o voor “andere” die sommige systemen gebruiken -r voor “kamernummer”.

We kunnen de gegevens zien die zijn opgeslagen voor gebruikersaccount Mary in het /etc/paswd bestand, door less:

less /etc/passwd

lass / etc / passwd in een terminalvenster

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

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o "HTG Freelancer" dave in een terminalvenster

En we kunnen de gegevens voor gebruikersaccounts controleren met de less opdracht:

less /etc/passwd

less / etc / p <span data-mce-type =[asswdineenterminalvenster”breedte=”646″hoogte=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Dat roept een voor de hand liggende vraag op. Als uw versie van chfn ondersteunt het veld “Overig” niet, hoe verander je het? We kunnen dat doen met de usermod opdracht.

De usermod Command

De usermod commando stelt u in staat om aspecten van een gebruikersaccount te wijzigen door middel van acties zoals het toevoegen van of verwijderen van het gebruikersaccount uit groepen, en het wijzigen van hun standaard shell. Het kan ook worden gebruikt om het GECOS-veld rechtstreeks te manipuleren.

Laten we de regel in de /etc/passwd bestand voor gebruikersaccount Mary. We zullen grep gebruiken 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

grep mary / etc / passwd in een terminalvenster

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 deze gebruikersaccount aangeeft, wordt versleuteld bewaard in het /etc/shadow het dossier.
  • Het gebruikers-ID voor het mary-gebruikersaccount.
  • De groeps-ID voor het mary-gebruikersaccount.
  • Het GECOS-veld.
  • Het pad naar de basismap 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 binnen 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 usermod commando stelt het volledige GECOS-veld in 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 naar de vierde verdieping. Ze krijgt een nieuw kantoornummer, een nieuw werktelefoonnummer, en we gaan haar tweede naam toevoegen. Haar waarde in het veld ‘Overig’ zal ook veranderen. Hoewel haar telefoonnummer thuis niet zal veranderen, moeten we het in de string naar vermelden usermod.

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

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

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

Gebruik makend van grep om te rapporteren over de inhoud van de /etc/passwd bestand voor mary, toont ons dat de nieuwe waarden zijn toegevoegd.

grep mary /etc/passwd

grep mary / etc / passwd in een terminalvenster

VERWANT: Voeg een gebruiker toe aan een groep (of tweede groep) op Linux

Alles is Flux, niets blijft

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

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in