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
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
Dit is wat het zou kunnen vinden:
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
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.
De informatie die we hebben ingevoerd was:
- Kamernummer: 512
- Werktelefoon: 555-4567
- Telefoon thuis: 555-5432
Laten we dat eens kijken finger
pikt die nieuwe informatie op:
finger dave -l
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
En als we nog eens kijken met finger
:
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
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
En tot slot, om het telefoonnummer thuis te wijzigen, gebruikt u de -h
(telefoonnummer thuis) optie:
sudo chfn -h 555-6576 dave
Laten we gebruiken finger
nogmaals om te zien of al deze wijzigingen zijn geaccepteerd:
finger dave -l
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
De gebruikelijke standaardinformatie is ingesteld voor dit gebruikersaccount. Laten we toevoegen aan de informatie:
sudo chfn mary
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.
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
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
En we kunnen de gegevens voor gebruikersaccounts controleren met de less
opdracht:
less /etc/passwd
[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
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
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
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.