Jak změnit uživatelská data pomocí chfn a usermod v systému Linux

Uživatelský účet obsahuje více než uživatelské jméno. Naučte se, jak nastavit a změnit všechna metadata přidružená k uživatelskému účtu Linux z příkazového řádku.

Co je ve jméně?

Pokud používáte počítač se systémem Linux nebo Unix, budete mít uživatelský účet. Název přidělený účtu je název vašeho uživatelského účtu. Toto je jméno, pod kterým se přihlašujete. Je to také (ve výchozím nastavení) název vaší přihlašovací skupiny a název vašeho domovského adresáře. Všechny používají stejný identifikátor.

Pro každý uživatelský účet lze uložit další sadu informací. Lze definovat a připojit k nim například data z reálného světa, jako je celé jméno osoby, číslo její kanceláře a telefonní číslo do zaměstnání. Do uživatelských účtů lze skutečně označit zcela libovolné úryvky informací.

V praxi to bude užitečnější pro systémové administrátory, kteří se starají o počítače, které mají nakonfigurováno mnoho uživatelských účtů. Ale i na počítači s Linuxem pro jednoho uživatele je vždy zajímavé vědět, co se děje pod kapotou.

Pole GECOS

Kdysi neměli průkopníci Unixu žádnou vlastní tiskárnu. Museli zařadit své tiskové úlohy do a General Electric sálový počítač, na kterém běžel Komplexní operační systém General Electric (GECOS). Aby toho dosáhli, uživatelé na systémech Unix potřebovali uložit a používat přihlašovací údaje účtu v systému GECOS.

Pro uložení těchto přihlašovacích údajů bylo vytvořeno pole GECOS. Tento velmi úzce specializovaný požadavek již dávno přešel do historie a pole GECOS bylo nově určeno k ukládání dalších dat souvisejících s vlastníkem uživatelského účtu. Může mít novou práci, ale zachovává si svůj starý název. Stále se nazývá pole GECOS.

Pole je uloženo v souboru /etc/passwd spolu s dalšími informacemi týkajícími se uživatelského účtu:

Uživatelské jméno účtu.
ID uživatele.
ID skupiny.
Cesta k domovskému adresáři pro uživatelský účet.
Shell, který se spustí, když se uživatel přihlásí.

  Jak udělat, aby Linux vypadal jako macOS

Toto je místo prst příkaz a malíček příkaz získat informace, které zobrazují.

Příkaz chfn

Umožňuje vám to chfn (změnit informace o prstu). nastavit a změnit informace uložené v poli GECOS. Informace jsou v poli uloženy jako seznam oddělený čárkami.

Příkaz chfn již byl přítomen na Ubuntu 18.04.1 a Manjaro 18.1.0. Musel být nainstalován na Fedoře 31. K instalaci použijte tento příkaz:

sudo dnf install util-linux-user

Pojďme se podívat, co může prst zjistit o majiteli uživatelského účtu „dave“. Abychom získali maximum informací, použijeme volbu -l (dlouhý formát):

finger dave -l

Tohle by mohl najít:

Načte uživatelské jméno účtu, domovský adresář a výchozí prostředí. To vše souvisí s uživatelským účtem. Neodkazují na skutečnou osobu, která tento účet používá. K uložení informací o skutečné osobě můžeme použít příkaz chfn.

chfn dave

Použití chfn tímto způsobem spustí krátký interaktivní proces. Budete vyzváni k zadání datové hodnoty pro každou informaci, kterou pole GECOS pojme. Aktuální hodnota pro každou hodnotu dat je zobrazena v závorkách []. Pokud chcete zachovat aktuální data, můžete stisknout klávesu „Enter“ a hodnota v závorkách zůstane zachována.

Informace, které jsme zadali, byly:

Číslo pokoje: 512
Pracovní telefon: 555-4567
Telefon domů: 555-5432

Pojďme zkontrolovat, že prst zachytil nové informace:

finger dave -l

Ano. Ale možná jste si všimli, že nevyzval ke změně celého jména. Udělá to, pouze pokud použijete sudo. Ale nemusíme znovu procházet celou chfn session, jen proto, že jsme zapomněli použít sudo. Libovolnou z hodnot dat můžeme individuálně změnit.

Změna hodnot jednotlivých dat

Celé jméno vlastníka uživatelského účtu můžeme nastavit pomocí volby -f (celé jméno) spolu se sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f

A když ještě jednou zkontrolujeme prstem:

Vidíme, že bylo přidáno celé jméno.

Existují další možnosti, jak změnit číslo pokoje, telefonní číslo domů a telefonní číslo do práce. Pro změnu čísla pokoje (kanceláře) použijte volbu -r (číslo pokoje):

sudo chfn -r 633 dave

Všimněte si, že u některých distribucí můžete místo volby -r použít volbu -o (číslo kanceláře). Více o tom již brzy. Chcete-li nyní zobrazit možnosti pro svou verzi chfn, použijte:

man chfn

Pro změnu telefonního čísla do kanceláře použijte volbu -w (pracovní telefon):

sudo chfn -w 555-1122 dave

A nakonec pro změnu domácího telefonního čísla použijte volbu -h (domácí telefonní číslo):

sudo chfn -h 555-6576 dave

Pomocí prstu znovu zjistíme, zda byly všechny tyto změny přijaty:

finger dave -l

Úspěch. Všechny tyto příkazy fungovaly a datové hodnoty byly aktualizovány.

  Jak nainstalovat téma Arc And Arc Darker na Linux

Použití chfn na jiných uživatelských účtech

Tolik ke změně našich vlastních informací, co změna informací GECOS pro ostatní uživatele? To je stejně snadné. Když to uděláte, musíte použít sudo, ale to je jediný rozdíl. Podívejme se, jaká data jsou nastavena pro uživatelský účet mary:

finger mary -l

Pro tento uživatelský účet jsou nastaveny obvyklé výchozí informace. K informacím doplňme:

sudo chfn mary

Projdeme stejnou relací jako předtím, budeme vyzváni k zadání datové hodnoty pro každou informaci, kterou lze uložit. A protože jsme použili sudo , jsme požádáni o údaj o úplném názvu.

Počkejte chvíli, co je ta poslední položka s názvem „Jiné?“

není podporováno všemi verzemi chfn a vidíte jej pouze tehdy, pokud používáte sudo, což je důvod, proč jsme jej neviděli dříve, když jsme (úmyslně) sudo nepoužívali s:

chfn dave

Datová hodnota „Jiné“ může obsahovat cokoli, co chcete. Nemá žádné předepsané ani očekávané použití.

Verze chfn, které podporují pole „Jiné“, také poskytují volbu -o (ostatní) pro přímou změnu této hodnoty. Je to kvůli konfliktu mezi -o pro „číslo kanceláře“ a -o pro „jiné“, že některé systémy používají -r pro „číslo pokoje“.

Data uložená pro uživatelský účet mary můžeme vidět v souboru /etc/paswd pomocí less:

less /etc/passwd

Na systémech, které to podporují (podívejte se na manuálovou stránku vaší verze chfn ) můžete pole „other“ nastavit přímo pomocí volby -o (other):

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o

A můžeme zkontrolovat data pro uživatelský účet dave pomocí příkazu less:

less /etc/passwd

[asswdvokněterminálu”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

To vyvolává jasnou otázku. Pokud vaše verze chfn nepodporuje pole „Jiné“, jak to změníte? Můžeme to udělat pomocí příkazu usermod.

  Jak používat KeepPass v systému Linux, aby byla vaše hesla v bezpečí

Příkaz usermod

Umožňuje vám to příkaz usermod upravit aspekty uživatelského účtu prostřednictvím akcí, jako je přidání nebo odebrání uživatelského účtu ze skupin a změna jejich výchozího prostředí. Lze jej také použít k přímé manipulaci s polem GECOS.

Podívejme se blíže na řádek v souboru /etc/passwd pro uživatelský účet mary. budeme používat grep, aby nám tu linku izoloval. Bude to fungovat, protože uživatelská jména musí být jedinečná. Může existovat pouze jeden uživatelský účet s názvem mary.

grep mary /etc/passwd

Zobrazí se pole v souboru etc/passwd. Jako oddělovač polí se používá dvojtečka „:“. zleva doprava jsou pole:

Uživatelské jméno účtu.
Písmeno „x“, které označuje heslo pro tento uživatelský účet, je zašifrováno v souboru /etc/shadow.
ID uživatele pro uživatelský účet mary.
ID skupiny pro uživatelský účet mary.
Pole GECOS.
Cesta k domovskému adresáři pro uživatelský účet mary.
Shell, který se spustí, když se přihlásí vlastník účtu Mary.

Čárka „,“ se používá jako oddělovač hodnot dat v poli GECOS. Hodnoty v poli GECOS jsou zleva doprava:

Celé jméno.
Číslo pokoje (nebo kanceláře).
Pracovní telefonní číslo.
Telefonní číslo domů.
Jiná informace.

Všimněte si, že příkaz usermod nastaví celé pole GECOS na novou hodnotu, kterou zadáte. Pokud vše, co uvedete, je celé jméno osoby, pak jedinou věcí v poli GECOS bude celé jméno. To znamená, že musíte zadat všechny existující hodnoty dat, které si přejete zachovat.

Zde je příklad. Uživatelka Mary byla povýšena a přestěhuje se do čtvrtého patra. Dostává nové číslo do kanceláře, nové pracovní telefonní číslo a přidáme její druhé jméno. Její hodnota pole „Jiné“ se také změní. Přestože se její domácí telefonní číslo nezmění, musíme ho zadat v řetězci usermod.

Musíme použít volbu -c (komentář) a musíme příkaz spustit pomocí sudo.

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

sudo usermod -c

Použití grep k hlášení obsahu souboru /etc/passwd pro mary nám ukazuje, že byly přidány nové hodnoty.

grep mary /etc/passwd

Všechno je tok, nic nepřetrvává

Nepřesná data jsou bezcenná. Když se změní informace o lidech – stěhování kanceláře, změny jmen, názvy rolí – můžete snadno aktualizovat jejich metadata, aby odrážela aktuální pozici.