Sådan ændres brugerdata med chfn og usermod på Linux

Der er mere til en brugerkonto end et brugernavn. Lær, hvordan du indstiller og ændrer alle de metadata, der er knyttet til en Linux-brugerkonto, fra kommandolinjen.

Hvad er i et navn?

Hvis du bruger en Linux- eller Unix-lignende computer, har du en brugerkonto. Navnet på kontoen er dit brugerkontonavn. Dette er det navn, du bruger til at logge ind med. Det er også (som standard) navnet på din login-gruppe og navnet på din hjemmemappe. De bruger alle den samme identifikator.

Der er et andet sæt oplysninger, der kan gemmes for hver brugerkonto. Data fra den virkelige verden, såsom personens fulde navn, deres kontornummer og deres arbejdstelefonnummer, kan f.eks. defineres og knyttes til dem. Faktisk kan helt vilkårlige uddrag af information tagges til brugerkonti.

Rent praktisk vil dette være mere nyttigt for systemadministratorer, der passer på computere, der har mange brugerkonti konfigureret på dem. Men selv for en-bruger Linux-computeren er det altid interessant at vide, hvad der foregår under motorhjelmen.

GECOS-feltet

På et tidspunkt havde Unix-pionererne ingen egen printer. De måtte spoole deres printjob til en General Electric mainframe, der kørte General Electric omfattende operativsystem (GECOS). For at opnå dette var brugerne på Unix-systemerne nødt til at gemme og bruge legitimationsoplysningerne for en konto på GECOS-systemet.

GECOS-feltet blev oprettet for at gemme disse legitimationsoplysninger. Netop det nichekrav er for længst gået ind i historien, og GECOS-feltet er blevet genbrugt til at gemme andre data relateret til ejeren af ​​brugerkontoen. Den har måske et nyt job, men den beholder sit gamle navn. Det kaldes stadig GECOS-feltet.

Feltet er gemt i filen /etc/passwd sammen med andre oplysninger om brugerkontoen:

Kontoens brugernavn.
Bruger-id’et.
Gruppe-id’et.
Stien til hjemmebiblioteket for brugerkontoen.
Skallen, der startes, når brugeren logger på.

Det er her finger kommando og pinky kommando hente de oplysninger, de viser.

chfn-kommandoen

chfn (ændre fingeroplysninger) giver dig mulighed for indstille og ændre de oplysninger, der er gemt i GECOS-feltet. Oplysningerne gemmes som en kommasepareret liste i feltet.

  Sådan downloader du dit Google Musikbibliotek i Linux via kommandolinje

chfn-kommandoen var allerede til stede på Ubuntu 18.04.1 og Manjaro 18.1.0. Det skulle installeres på Fedora 31. Brug denne kommando til at installere det:

sudo dnf install util-linux-user

Lad os se, hvilken finger der kan finde ud af om ejeren af ​​brugerkontoen “dave.” For at få den maksimale information bruger vi muligheden -l (langt format):

finger dave -l

Dette er hvad den kunne finde:

Den henter kontobrugernavnet, hjemmebiblioteket og standardskallen. Disse er alle relateret til brugerkontoen. De henviser ikke til den rigtige person, der bruger den konto. Vi kan bruge chfn-kommandoen til at gemme information om den faktiske person.

chfn dave

Brug af chfn på denne måde starter en kort, interaktiv proces. Du bliver bedt om at indtaste en dataværdi for hvert stykke information, som GECOS-feltet kan indeholde. Den aktuelle værdi for hver dataværdi vises i parentes []. Hvis du vil beholde de aktuelle data, kan du trykke på “Enter”-tasten, og værdien inden for parentes bevares.

De oplysninger vi indtastede var:

Værelsesnummer: 512
Arbejdstelefon: 555-4567
Hjemmetelefon: 555-5432

Lad os tjekke, at fingeren opfanger den nye information:

finger dave -l

Ja det gør. Men du har måske bemærket, at det ikke blev bedt om at ændre det fulde navn. Det vil den kun gøre, hvis du bruger sudo. Men vi skal ikke igennem hele chfn-sessionen igen, bare fordi vi har glemt at bruge sudo. Vi kan ændre enhver af dataværdierne individuelt.

Ændring af individuelle dataværdier

Vi kan indstille det fulde navn for ejeren af ​​brugerkontoen ved at bruge muligheden -f (fuldt navn) sammen med sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f

Og hvis vi tjekker en gang til med fingeren:

Vi kan se, at det fulde navn er tilføjet.

Der er andre muligheder for at ændre værelsesnummer, hjemmetelefonnummer og arbejdstelefonnummer. For at ændre lokale (kontor) nummer, brug -r (rum nummer) mulighed:

sudo chfn -r 633 dave

Bemærk, at på nogle distributioner kan du bruge -o (kontorlokalenummer) muligheden i stedet for -r muligheden. Mere om dette snart. For nu, for at se mulighederne for din version af chfn, skal du bruge:

man chfn

For at ændre kontortelefonnummeret, brug -w (arbejdstelefon) mulighed:

sudo chfn -w 555-1122 dave

Og endelig, for at ændre hjemmetelefonnummeret, brug -h (hjemmetelefonnummer) mulighed:

sudo chfn -h 555-6576 dave

Lad os bruge fingeren igen for at se, om alle disse ændringer er blevet accepteret:

finger dave -l

Succes. Alle disse kommandoer har virket, og dataværdierne er blevet opdateret.

  Sådan bruges hardcode-bakke til at ændre systembakkeikoner i Linux

Brug af chfn på andre brugerkonti

Så meget for at ændre vores egne oplysninger, hvad med at ændre GECOS-oplysningerne for andre brugere? Det er lige så nemt. Du skal bruge sudo, når du gør det, men det er den eneste forskel. Lad os tjekke, hvilke data der er indstillet for brugerkontoen mary:

finger mary -l

De sædvanlige standardoplysninger er indstillet for denne brugerkonto. Lad os tilføje til oplysningerne:

sudo chfn mary

Vi kører gennem den samme session, som vi gjorde før, og bliver bedt om en dataværdi for hver information, der kan gemmes. Og fordi vi brugte sudo , bliver vi bedt om dataværdien for det fulde navn.

Vent et øjeblik, hvad er det sidste element, der hedder “Andet?”

det understøttes ikke af alle versioner af chfn, og du ser det kun, hvis du bruger sudo, hvorfor vi ikke så det tidligere, da vi (bevidst) ikke brugte sudo med:

chfn dave

“Andre” dataværdien kan indeholde alt, hvad du kan lide. Det har ingen foreskrevet eller forventet brug.

Versioner af chfn, der understøtter feltet “Andet”, giver også muligheden -o (andet) for at ændre denne værdi direkte. Det er på grund af konflikten mellem -o for “kontornummer” og -o for “andet”, at nogle systemer bruger -r for “rumnummer”.

Vi kan se dataene gemt for brugerkontoen mary i filen /etc/paswd ved at bruge mindre:

less /etc/passwd

På systemer, der understøtter det (tjek man-siden for din version af chfn ), kan du indstille “andet”-feltet direkte ved at bruge -o (andet) mulighed:

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o

Og vi kan kontrollere dataene for brugerkontoen dave ved at bruge less-kommandoen:

less /etc/passwd

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

  Sådan installerer du PulseAudio Equalizer på Linux og forbedrer lyden

Det rejser et åbenlyst spørgsmål. Hvis din version af chfn ikke understøtter feltet “Andet”, hvordan ændrer du det? Det kan vi gøre med kommandoen usermod.

Usermod-kommandoen

Usermod-kommandoen giver dig mulighed for ændre aspekter af en brugerkonto gennem sådanne handlinger som at tilføje eller fjerne brugerkontoen fra grupper og ændre deres standardskal. Det kan også bruges til direkte at manipulere GECOS-feltet.

Lad os se nærmere på linjen i filen /etc/passwd for brugerkontoen mary. Vi bruger grep for at isolere den linje for os. Dette vil fungere, fordi brugernavne skal være unikke. Der kan kun være én brugerkonto kaldet mary.

grep mary /etc/passwd

Felterne i etc/passwd-filen vises. Et kolon “:” bruges som feltseparator. fra venstre mod højre er felterne:

Kontoens brugernavn.
Et “x”, som angiver adgangskoden til denne brugerkonto, holdes krypteret i filen /etc/shadow.
Bruger-id’et for Mary-brugerkontoen.
Gruppe-id’et for Mary-brugerkontoen.
GECOS-feltet.
Stien til hjemmemappen for Mary-brugerkontoen.
Skallen, der startes, når ejeren af ​​Mary-kontoen logger ind.

Et komma “,” bruges som separator for dataværdierne i GECOS-feltet. Værdierne i GECOS-feltet er fra venstre mod højre:

Fulde navn.
Værelsesnummer (eller kontor).
Arbejdstelefonnummer.
Hjemmetelefonnummer.
Andre oplysninger.

Bemærk, at usermod-kommandoen indstiller hele GECOS-feltet til den nye værdi, du angiver. Hvis alt du angiver er det fulde navn på personen, så vil det eneste i GECOS-feltet være det fulde navn. Det betyder, at du skal angive eksisterende dataværdier, som du ønsker at beholde.

Her er et eksempel. Brugeren Mary er blevet forfremmet, og hun skal flytte til fjerde sal. Hun får et nyt kontornummer, et nyt arbejdstelefonnummer, og vi vil tilføje hendes mellemnavn. Hendes “Andet” feltværdi vil også ændre sig. Selvom hendes hjemmetelefonnummer ikke ændres, skal vi give det i strengen til usermod.

Vi skal bruge muligheden -c (kommentar), og vi skal køre kommandoen med sudo.

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

sudo usermod -c

Brug af grep til at rapportere om indholdet af /etc/passwd-filen for mary, viser os, at de nye værdier er blevet tilføjet.

grep mary /etc/passwd

Alt er flux, intet forbliver

Upræcise data er værdiløse. Når oplysningerne om personer ændres – kontorflytninger, navneændringer, rolletitler – kan du nemt opdatere deres metadata, så de afspejler den aktuelle position.