GNU/Linux >> Znalost Linux >  >> Linux

Kompletní příručka pro správu uživatelů v systému Linux

Tento výukový program se zaměřuje na správu uživatelů na hostitelích Linux, správu uživatelů a skupin.

Jako správce systému manipulujete s uživateli a skupinami pořád.

Možná budete požádáni o vytvoření nového uživatelského účtu například pro nového člena vašeho týmu.

Můžete být také požádáni o vytvoření konkrétních účtů pro databáze nebo pro speciální nástroje, které si nainstalujete do svého hostitele.

Pokud se váš hostitel rozroste, můžete být také v pokušení vytvořit skupiny, abyste lépe porozuměli právům, která přidělujete členům vašeho systému.

V důsledku toho dokonalé porozumění správě uživatelů je velmi základní dovedností, kterou si zkušení správci osvojí.

V dnešním tutoriálu se velmi podrobně podíváme na správu uživatelů:jak vytvářet uživatele , smažte je ale také jak nastavit jasnou politiku hesel ve vašem systému .

Objevíte všechny příkazy spojené se správou uživatelů a také konkrétní soubory, které si musíte důkladně prohlédnout.

Jste připraveni?

Co se naučíte

Přečtením tohoto návodu až do konce se dozvíte o následujících tématech.

  • Jaké uživatelské účty jsou na Linuxu a jak se od sebe liší;
  • Co jsou skupiny na Linuxu a jaké jsou různé typy skupin;
  • Jak vytvořit , smazat a upravit stávající uživatelé na hostiteli Linux;
  • Co jsou heslo a stín soubory ve vašem systému a jaké informace obsahují;
  • Jak můžete konfigurovat stárnutí hesla pomocí příkazu chage;
  • Jak můžete udělit uživatelům privilegovaná práva prostřednictvím visudo a usermod;

Jako obvykle je to poměrně dlouhý program, takže se bez dalšího zdržování podívejme, jaké uživatelské účty jsou na Linuxu.

Základy správy uživatelů v systému Linux

Pokud používáte systém Linux, s největší pravděpodobností běží jako systém pro více uživatelů .

Znamená to, že více uživatelů se může připojit ke stejnému hostiteli za účelem sdílení zdrojů nebo provádění různých operací v systému.

Jak jste si však již mohli všimnout, ne všechny uživatelské účty jsou stejné.

Některé mohou mít více oprávnění než jiné. Na druhou stranu, některé mohou být více omezeny než jiné a nemohou spustit ani jednoduchý proces shellu.

Typy uživatelských účtů

V Linuxu se budete muset vypořádat se třemi různými typy uživatelských účtů:

  • Kořenový účet :což je podle definice nejvýkonnější uživatelský účet vašeho systému. Uživatel root může provádět libovolnou operaci (jako je například změna hesla), může zabíjet jakékoli procesy a může přejít do libovolného adresáře v souborovém systému.
  • Systémové účty :systémové účty jsou účty používané procesy nebo programy na vašem hostiteli. Možná jste viděli, že konkrétní účty se používají pro správu pošty nebo pro provoz jednoduchého serveru Apache. Tyto účty mají často omezená oprávnění a je jim zabráněno v přístupu k interaktivnímu prostředí.

Doporučuje se neupravovat tyto účty sám.

  • Uživatelské účty :uživatelské účty jsou účty používané skutečnými uživateli. Mohou to být členové vašeho týmu nebo účty, které jste vytvořili, abyste jim mohli načíst nějaké soubory na hostiteli. Na rozdíl od systémových účtů je velmi doporučeno tyto účty upravit, aby byla zajištěna správná konfigurace.

Těmto účtům jsou většinou poskytovány interaktivní shelly (jako bash nebo sh), aby bylo možné spouštět příkazy v systému.

Poznámka :na některých hostitelích může být doporučeno uzamknout účet root, aby se předešlo problémům se zabezpečením.

Identifikátory uživatelských účtů

V systému Linux jsou účty identifikovány pomocí ID uživatele , také nazývané UID .

Toto je velmi blízké konceptu PID pro procesy, UID se používají kjednoznačné identifikaci uživatelů v systému.

Navíc se často používají ke kategorizaci uživatelských účtů v systému Linux.

Jak jsme již probrali, uživatelské účty jsou rozděleny do tří kategorií. V důsledku toho jsou UID také přiřazeny uživatelům v závislosti na kategorii, do které patří.

Chcete-li zobrazit informace související s vaším ID, spusťte následující příkaz

$ id

Jak můžete vidět, moje osobní UID je 1000.

Ale proč není nula nebo jedna?

V Linuxu jsou uživatelská ID přiřazena podle následujícího pravidla:

  • Účet root má přiděleno UID 0 a také GID 0 .
  • Systémové účty , ten vytvořený programy, které používáte ve vašem systému, mají přiřazen vlastní rozsah, který může být buď 1 až 500 nebo 1 až 999. Na systémech založených na Debianu je rozsah pro systémové účty od 1 do 999.
  • Uživatelské účty dostávají UID větší než 1000. To je to, co jste skutečně viděli na obrázku výše.

Přizpůsobení identifikátorů uživatelů

Ve zvláštních případech můžete být v pokušení upravit způsob přidělování UID a GID v systému Linux.

Někdy jsou uživatelé definováni lokálně v systému, ale mohou být také definováni v externím systému správy uživatelů, jako je například LDAP.

V důsledku toho, pokud LDAP zachovává UID od 1000 do 9999, možná budete chtít přiřadit místnímu uživateli UID větší než 10000 ve výchozím nastavení.

Přizpůsobení identifikátorů uživatelů se provádí v souboru s názvem login.defs na vašem hostiteli (nachází se v atd )

Chcete-li se podívat na výchozí identifikátory dané vašemu hostiteli, podívejte se do souboru login.defs a najděte následující sekci.

$ nano /etc/login.defs

Skupiny a typy skupin v systému Linux

Ve výchozím nastavení je uživatelům na vašem hostiteli přiřazena jedna nebo více skupin.

V Linuxu jsou skupiny vytvářeny, aby uživatelé sdíleli stejnou sadu oprávnění nebo stejná omezení na hostiteli Linuxu.

Ve výchozím nastavení, když vytvoříte uživatelský účet, je s ním vytvořena skupina se stejným názvem. V důsledku toho každý uživatel patří alespoň do jedné skupiny.

Pro ilustraci spusťte ve svém systému následující příkaz

$ groups <user>

Ve výchozím nastavení jsou skupiny v Linuxu rozděleny do dvou kategorií:

  • Primární skupina :jeden uživatel může mít vždy jednu (a pouze jednu) primární skupinu. Primární skupina je skupina přiřazená, když uživatel vytvoří soubor nebo adresář v systému. V důsledku toho můžete být v pokušení upravit primární skupinu uživatelů za účelem vyladění její výchozí skupiny pro vytváření souborů.
  • Sekundární skupiny :uživatelé mohou patřit do mnoha dalších skupin. Pokud patří do konkrétního týmu na vašem hostiteli, budou patřit do této skupiny (například administrátoři). Jako druhý příklad mohou privilegovaní uživatelé patřit do skupiny sudo (v Debianu) nebo do skupiny wheel (v distribucích založených na Red Hatu)

Skupinám jsou také přiděleny specifické identifikátory, aby je bylo možné v systému od sebe odlišit.

Nazývají se GID a lze je také upravit prohlédnutím souboru login.defs ve vašem souborovém systému.

Nyní, když máte jasnější představu o tom, co jsou uživatelé a skupiny v Linuxu, pojďme se podívat, jaké příkazy můžete spustit, abyste přidali nebo odebrali uživatele ve vašem systému.

Příkazy správy uživatelů v systému Linux

Ve svém systému můžete přidat, odebrat nebo upravit místní účty.

Upozornění :Abyste mohli spouštět tyto příkazy nebo se připojit jako root, budete muset mít na svém hostiteli oprávnění sudo.

Zde je jeden průvodce pro systémy založené na Debianu a jeden pro systémy založené na Red Hatu.

Vytvoření místních uživatelských účtů

Chcete-li vytvořit místní uživatelské účty v systému Linux, musíte použít příkaz useradd .

$ useradd <user>

Ve výchozím nastavení, pokud nezměníte konfigurační soubory, příkaz vytvoří domovský adresář pro vašeho uživatele a také přednastavené soubory jako .bashrc, .profile a .bash_logout.

Příkaz useradd však odhaluje různé možnosti, jak vyladit vytvoření uživatelského účtu:

  • -d :pro domovský adresář. Ve výchozím nastavení budou účty vytvořeny v /home, ale můžete si zvolit jinou cestu ve vašem souborovém systému;
  • -e :datum spotřeby. Užitečné, když vytváříte účty pro externí konzultanty, kteří mají odejít k určitému datu;
  • -g :pro GID je tato možnost nastavena tak, aby měl uživatel při vytváření účtu vlastní GID;
  • -G :pro doplňkové skupiny je tato možnost nastavena tak, aby byly uživateli ve výchozím nastavení přiřazeny sekundární skupiny;
  • -M :pro no-home se tato možnost používá k zabránění systému ve vytvoření domovského adresáře pro uživatele;
  • -r :za účelem vytvoření systémového účtu pro uživatele;
  • -s :pro shell se tato možnost používá k přizpůsobení shellu přiřazeného uživateli ve výchozím nastavení (/bin/bash, /bin/nologin, /bin/false, /bin/sh atd.)
  • -u :pro UID, podobně jako volba -g, se toto používá k přizpůsobení výchozího UID přiřazeného uživateli.

Jako příklad si můžete vytvořit standardní uživatelský účet v systému.

$ useradd john

Poté se můžete podívat do domovského adresáře a zkontrolovat, zda byl pro daného uživatele vytvořen jeden záznam.

Jak vidíte, ve výchozím nastavení nebyl pro uživatele vytvořen žádný domovský adresář.

Chcete-li tento problém vyřešit, zadejte správnou možnost a zkuste to znovu.

$ useradd -m bob

Nyní, když je váš uživatel vytvořen, budete mu muset přiřadit heslo, jinak nebude přístupný.

Změna hesla uživatele v systému Linux

Změna hesla uživatele v systému Linux , musíte použít passwd se zvýšenými oprávněními.

$ sudo passwd <user>

Pokud vezmeme příklad účtu, který jsme vytvořili dříve, spustili bychom následující příkaz.

$ sudo passwd bob

Nyní, když je heslo uživatele nastaveno, můžete se rychle připojit k uživatelskému účtu pomocí příkazu su.

$ su - <user>

Jak můžete vidět, shell daný uživateli ve výchozím nastavení je docela speciální.

Není to běžný bash shell, ve skutečnosti mu byl přiřazen úplně jiný shell nazvaný pomlčkový shell (/bin/sh).

Proč?

Ve výchozím nastavení používá useradd výchozí sadu možností, které jsou zcela přizpůsobitelné na vašem hostiteli.

Změna výchozích hodnot useradd v systému Linux

Chcete-li zkontrolovat různé výchozí možnosti pro příkaz useradd, spusťte následující příkaz

$ useradd -D

Stejný obsah můžete najít také v /etc/default/useradd soubor ve vašem systému.

Jak můžete vidět, výchozí prostředí je nastaveno na /bin/sh ve výchozím stavu.

To je přesně důvod, proč měl nový uživatel tento shell ve výchozím nastavení definován.

Chcete-li upravit výchozí nastavení, neměli byste přímo výchozí soubor ve vašem systému.

Pokud v procesu uděláte nějaké chyby, riskujete, že nebudete moci znovu spustit příkaz useradd.

Chcete-li například změnit výchozí použitý shell, museli byste spustit

$ useradd -Ds /bin/bash

Kostra domovského adresáře uživatele

Pokud jste se rozhodli vytvořit domovský adresář pro svého uživatele, možná jste si všimli, že některé soubory jsou v něm dostupné ve výchozím nastavení.

Odkud tyto soubory pocházejí?

Při vytváření domovského adresáře váš systém Linux zkopíruje soubory z adresáře s názvem „skel ” ve vašem systému, který se nachází v /etc .

Pokud byste se měli podívat na soubory umístěné v /etc/skel , měli byste přesně stejné soubory jako ve výchozím domovském adresáři

$ ls -al /etc/skel

Jak jste pravděpodobně uhodli, přidání některých souborů do tohoto adresáře skel přidá soubory do výchozích domovských adresářů na vašem hostiteli. Může být zvláště užitečné, když potřebujete přidat soubory README, pokud máte na serveru vlastní pravidla.

Odebrání místního uživatelského účtu v systému Linux

Chcete-li odebrat uživatelský účet ve vašem systému, musíte použít následující příkaz

$ userdel <user>

Existuje však jedno důležité pravidlo, které musíte o userdel vědět.

Příkaz userdel ve výchozím nastavení nevymaže domovský adresář ani soubory vlastněné uživatelem v systému.

Pokud jsou v systému stále přítomny soubory nebo adresáře bez uživatele, budou označeny předchozím UID a GID uživatele.

Chcete-li smazat domovský adresář s uživatelem, musíte použít volbu -r.

$ userdel -r <user>

To nesmaže soubory umístěné mimo domovský adresář.

Chcete-li najít soubory umístěné mimo domovský adresář, spusťte následující příkaz.

$ find <path> -uid <uid> 

Chcete-li snadno najít a najít soubory v systému Linux, přečtěte si průvodce!

Úprava stávajícího uživatelského účtu v systému Linux

V některých případech můžete chtít upravit stávající uživatelský účet ve vašem systému.

Úprava uživatele , musíte spustit příkaz usermod

$ usermod <option> <user>

S usermod máte mnoho různých možností:

  • -c :pro komentář se tento příkaz používá k úpravě komentáře spojeného s uživatelem v souboru passwd;
  • -d :domovský adresář, používá se k úpravě výchozího domovského adresáře pro uživatele;
  • -g :používá se k úpravě primární skupiny uživatelů;
  • -a :pro připojení se používá k přiřazení sekundárních skupin uživateli jejich připojením k existujícímu seznamu skupin pro daného uživatele
  • -G :používá se k přiřazení sekundárních skupin uživateli (například skupina sudo nebo kolo);
  • -L :používá se k uzamčení uživatelského účtu;
  • -U :slouží k odemknutí uživatelského účtu

Pokud například chcete přidat uživatele do skupiny sudo, spustíte

$ sudo usermod -aG sudo <user>

Nyní, když lépe rozumíte příkazům, které můžete spustit pro přidání nebo odstranění uživatelů, pojďme se podívat na některé důležité soubory související se správou uživatelů.

Heslo a stínové soubory

V Linuxu existují dva hlavní soubory, které souvisejí se správou uživatelů:soubor /etc/passwd a soubor /etc/shadow.

Porozumění souboru passwd

Ve výchozím nastavení soubor passwd zobrazuje seznam všech uživatelů dostupných lokálně na vašem systému Linux.

Chcete-li mít tento výpis, spusťte následující příkaz

$ cat /etc/passwd

Jak vidíte, soubor passwd je soubor oddělený dvojtečkou s několika položkami, jednou pro každého uživatele dostupného ve vašem systému.

Zleva doprava jsou ve sloupcích zobrazeny následující informace:

  • Uživatelské jméno :skutečné uživatelské jméno pro uživatele v systému;
  • Heslo :Položka „x“ jednoduše znamená, že heslo je k dispozici ve stínovém souboru v zašifrovaném formátu;
  • UID :jedinečné ID uživatele, které jsme popsali dříve;
  • GID :ID pro primární skupinu uživatele (to se může lišit, pokud jste si jej přizpůsobili);
  • Komentář :popisný komentář, který může být užitečný při identifikaci uživatele. Toto pole se také nazývá GECOS pole;
  • Domovský adresář :pokud byl uživateli přiřazen domovský adresář nebo vlastní pole, jsou zde informace uloženy;
  • Výchozí prostředí :shell přiřazený uživateli při jeho vytváření.

Pokud byste pomocí příkazu useradd vytvořili nového uživatele, do tohoto souboru by se automaticky přidal nový záznam.

Na druhou stranu, stínový soubor obsahuje citlivější informace o vašem systému.

Pochopení stínového souboru

Chcete-li mít výpis stínového souboru, ujistěte se, že příkaz spouštíte jako privilegovaný uživatel

$ sudo cat /etc/shadow

Ve výchozím nastavení stínový soubor zobrazuje následující sloupce:

  • Uživatelské jméno :skutečné uživatelské jméno pro uživatele v systému;
  • Heslo :zde bude uloženo zašifrované heslo. Ve výchozím nastavení najdete informace o šifrovacím systému kontrolou prvních tří znaků (v tomto případě je $6$ šifrování SHA-512);
  • Při poslední změně hesla :počet dní od 1. ledna 1970 do poslední změny hesla. V tomto případě 18 146 dní dává 7. září 2019;
  • Minimální počet dní mezi změnami hesla :znamená počet dní, než si uživatel může změnit heslo;
  • Maximální počet dní pro platné heslo :maximální doba platnosti hesla v systému;
  • Výstražná lhůta :tato možnost definuje počet dní před vypršením platnosti hesla, po které má uživatel obdržet varovnou zprávu o svém účtu;
  • Období nečinnosti :když vyprší platnost vašeho hesla, definuje období před deaktivací účtu;
  • Datum vypršení platnosti :definuje počet dní od 1. ledna 1980 před deaktivací účtu.

Poznámka :"!" nebo „*“ v hesle znamená, že přihlášení uživatele je v systému zakázáno, protože pravděpodobně máte co do činění se systémovým účtem.

Nyní, když lépe rozumíte heslu a stínovému souboru, pojďme se podívat, jak můžete spravovat stárnutí hesel pomocí příkazů.

Správa stárnutí hesel se změnou

V Linuxu je způsob, jak upravit všechny parametry, které jsme viděli dříve, pomocí příkazu chage.

$ chage <options> <user>

Kde možnosti jsou následující:

  • -d :pro poslední den tato možnost nastavuje počet dní od změny hesla k uživatelskému účtu;
  • -E :pro expiraci :nastavuje datum čísla (od 1. ledna 1970), kdy již nebude uživatelský účet přístupný;
  • -Já :pro neaktivní tato možnost nastavuje počet dní nečinnosti, než bude uživatelský účet v systému deaktivován;
  • -m :pro min. dní nastavuje počet dní před dvěma po sobě jdoucími změnami hesla. Pokud tuto hodnotu nastavíte na nulu, znamená to, že uživateli je kdykoli povoleno zadat heslo;
  • -M :pro max dní tato možnost nastavuje maximální platnost hesla v systému. Toto je jedna z možností, kterou musíte pečlivě nakonfigurovat, pokud na svých hostitelích nastavíte dobrou politiku hesel. Pokud také vypočítáte poslední změnu hesla s možností max. dnů, najdete den, kdy si uživatel musí heslo změnit;
  • -W :pro dny varování :nastavuje počet dní před vypršením platnosti hesla, kdy bude uživatelskému účtu zasláno upozornění na vypršení platnosti hesla.

Chcete-li mít úplný seznam aktivních zásad hesel pro váš účet, musíte spustit následující příkaz

$ chage -l <user>

Jak můžete vidět zde, dostávám všechny položky vztahující se k výše uvedeným možnostem.

V tomto případě jsem své heslo změnil 12. října 2019 a už nikdy nebudu nucen své heslo měnit. Tyto možnosti však lze snadno změnit.

Vynucení změny hesla

Chcete-li nastavit okamžitou změnu hesla pro uživatele na hostiteli, musíte spustit následující příkaz

$ chage -d 0 <user>

Jak můžete vidět zde, heslo uživatele bude muset být změněno při příštím přihlášení.

Zkuste se přihlásit jako uživatel, abyste viděli, že jste vyzváni ke změně hesla.

$ su <user>

Při změně hesla budete mít přístup ke svému uživatelskému účtu jako dříve.

Snadné nastavení data vypršení platnosti účtu

Jak bylo popsáno výše, datum vypršení platnosti účtu můžete změnit pomocí možnosti -E.

Může však být těžké uhodnout datum za dvacet, třicet z osmdesáti dnů ode dneška.

Chcete-li nastavit datum vypršení platnosti účtu za padesát dní ode dneška , zadejte následující příkaz

$ date -d '+50days' +%F

Odtud můžete snadno nastavit datum vypršení platnosti tohoto účtu.

$ chage -E <date> <user>

Nastavení vypršení platnosti hesla pro uživatele

Chcete-li uživateli nastavit vypršení platnosti hesla, musíte upravit maximální počet dní, po které bude muset změnit své heslo.

K tomu musíte použít volbu -M.

$ chage -M <days> <user>

V důsledku toho bude při provádění příkazu chage nastaveno datum vypršení platnosti hesla.

Zamykání a odemykání uživatelského účtu

V některých dnech vypršení platnosti hesla prostě nestačí.

Z bezpečnostních důvodů můžete chtít zcela vypovědět (nebo uzamknout) uživatelský účet. Toho lze použít k zabránění uživateli v přístupu k vašim hostitelům, když by to neměl mít.

Chcete-li zamknout uživatelský účet, musíte použít příkaz usermod.

$ usermod -L <user>

V důsledku toho se uživatel nebude moci připojit k uživatelskému účtu.

Chcete-li jej odemknout, můžete použít příkaz usermod s volbou -U.

Udělování privilegovaných práv uživatelům

V Linuxu máte v podstatě dva způsoby, jak nastavit privilegovaná, tj. sudo, práva k uživatelským účtům.

Můžete buď použít příkaz usermod k přidání uživatelů do skupiny sudo (na Debianu) nebo do skupiny wheel (na Red Hatu).

Chcete-li rychle přidat uživatele do sudoers, spusťte následující příkaz

$ sudo usermod -aG sudo <user>

Nebo na Red Hat

$ sudo usermod -aG wheel <user>

Můžete také přímo upravit soubor sudoers pomocí příkazu visudo.

Tyto kroky jsme již vysvětlili v následujících článcích:

  • Přidání uživatele do sudoers na Debianu 10
  • Přidání uživatele do sudoers na RHEL 8 / CentOS 8

Závěr

V dnešním tutoriálu jste se dozvěděli více o základech správy uživatelů v systému Linux.

Dozvěděli jste se, že můžete přidávat, mazat a upravovat uživatele a také můžete vyladit politiku hesel, abyste zajistili, že ve vašem systému nezůstanou bezpečnostní díry.

Také jste viděli, že můžete číst konkrétní soubory v souborovém systému, abyste měli úplné informace o uživatelích a skupinách.

Pokud hledáte seznam uživatelů v systému Linux, můžete si přečíst následující příručku.

Pokud vás také zajímá správa systému Linux, měli byste si prohlédnout všechny příručky, které jsme již publikovali v této sekci.


Linux
  1. Co je uživatel Linuxu?

  2. Jak nainstalovat Void Linux:Kompletní průvodce krok za krokem

  3. Kompletní průvodce pro použití AsciiDoc v Linuxu

  1. Jak vytvořit více uživatelských účtů v Linuxu

  2. Kompletní průvodce LVM v Linuxu pro začátečníky

  3. Administrace Linux serveru

  1. Linux su příkaz

  2. Instalujte Linux Mint 19 na VirtualBox:Kompletní průvodce

  3. Průvodce pro začátečníky ke správě uživatelů a skupin v Linuxu