LINUX – uživatelské účty (1)

Trocha teorie:

Jak bylo již mnohokrát řečeno, LINUX je systémem víceuživatelským. Tzn. Že k dané instanci OS se může v reálném čase

připojit současně více uživatelů, a to jak lokálně na daném PC, tak i vzdáleně. Z toho důvodu musí mít OS informace o

jednotlivých uživatelích, o jejich přihlašovacích údajích, o jejich právech apod.

LINUX má uživatele sdruženy do skupin. Každý uživatel je členem minimálně jedné skupiny, může být však členem i více

skupin.

Účty skupin

Informace o skupinách jsou uloženy v souboru /etc/group

Tyto informace jsou uloženy v následujícím textovém formátu :

jmeno_skupiny:x:GID:[clen1:clen2: … clenX]

jmeno_skupiny - název skupiny

x - x – účet je aktivní, ! - skupina je zablokovaná

GID - group ID – jednoznačný číselný identifikátor skupiny

clen1 .. clenN - nepovinný seznam uživatelů, kteří jsou také členy skupiny

Příklad :

root:x:0: //skupina root s GID 0

postfix:x:105:postdrop //skupina postfix s GID 105, jejím členem je navíc uživatel postdrop

test:!:1001 //skupina test s GID 1001 – neaktivní



LINUX – uživatelské účty (2)

Účty uživatelů

Informace o uživatelech jsou uloženy v souborech /etc/passwd a /etc/shadow.

Soubor /etc/passwd v sobě uchovává kompletní seznam uživatelských účtů, a to jak reálných, tak systémových (virtuálních).

Soubor /etc/shadow obsahuje zakryptované hesla k jednotlivým účtům.

Tyto informace jsou uloženy v následujícím textovém formátu :

/etc/passwd

username:x:UID:GID:GECOS:homedir:shell

username - uživatelské jméno

x - x – účet je aktivní, ! - účet je zablokován

UID - user ID – jednoznačný číselný identifikátor uživatele

GID - group ID – jednoznačný číselný identifikátor primární skupiny

GECOS - popis uživatele (např. jméno a příjmení)

homedir - domovský adresář

shell - shell, který bude spuštěn po přihlášení uživatele. Pro znemožnění

přihlášení na konzoli je možno uvést například /bin/false

Příklad :

root:x:0:0:root:/root:/bin/bash /uživatel root s UID 0

rpc:x:71:71:system user for portmap:/:/bin/false //systémový uživatel rpc bez přístupu na shell

ikopetschke:x:500:500:Igor Kopetschke:/home/ikopetschke:/bin/bash //můj účet

david:!:500:500:David Kmoch:/home/david:/bin/bash //účet se zablokovaným přihlášení



LINUX – uživatelské účty (3)

/etc/shadow

username:pwd_hash: .. expiration data ..

username - uživatelské jméno

pwd_hash - hash hesla v MD5

exp.data - údaje o platnosti a expiraci hesla

Příklad :

david:$1$qtbyMZ.s$iiQxLPSx55Z$_9SJU&bD0:13213:0:99999:7::: //uživatel david a jeho heslo

Po přihlášení a úspěšné autentizaci je uživateli přiděleno odpovídající UID a GID jeho primární skupiny, resp. GIDy dalších

skupin, jejichž je členem. Z tohoto textu je tedy patrné, že například superuživatelská práva pro root-a nejsou dána jeho

jménem (root) ale jeho UID (0). Tento uživatel se klidně může jmenovat jakkoli …

Každý uživatel má právo změnit své heslo. Zakládat uživatelské účty a skupiny, modifikovat je, mazat či blokovat a měnit hesla

jiným uživatelům může pouze superuživatel. Ten také zodpovídá za správnou politiku silných hesel.




LINUX – uživatelské účty (4)

Vytvoření skupiny

Skupiny se vytvářejí pomocí příkazu groupadd. Systém automaticky přidělí nejbližší volné GID , pokud to přepínačem -g

neurčíme jinak.

Syntaxe :

groupadd [prepinace] nazev_skupiny

Užitečné přepínače :

-g GID založí skupinu s daným GID

Příklad :

$ groupadd management // založí skupinu management s lib. GID

$ groupadd -g 600 ucetni // založí skupinu ucetni s GID 600

Modifikace skupiny

Skupiny se modifikují pomocí příkazu groupmod.

Syntaxe :

groupmod prepinace nazev_skupiny

Užitečné přepínače :

-g XXX nastaví skupině GID na XXX

-n name přejmenuje skupinu na name

Příklad :

$ groupmod -g 700 ucetni // změní skupině ucetni GID na 700

$ groupmod -n financni ucetni // přejmenuje skupinu ucetni na financni




LINUX – uživatelské účty (5)

Smazání skupiny

Skupiny se mažou pomocí příkazu groupdel.

Syntaxe :

groupdel nazev_skupiny

Příklad :

$ groupdel management // smaže skupinu management

Při mazání skupiny je nutno si uvědomit, že smazáním skupiny nesmažete uživatelské účty ve skupině obsažené, ani soubory,

které byly touto skupinou vlastněny. Tuto kontrolu je nutno provést následně ručně pomocí nástrojů shellu .



LINUX – uživatelské účty (6)

Vytvoření uživatele

Uživatelské účty se vytvářejí pomocí příkazů useradd nebo adduser. Systém automaticky přidělí nejbližší volné UID , pokud to

přepínačem -u neurčíme jinak.

Syntaxe :

useradd [prepinace] username

Užitečné přepínače :

-g group přiřadí uživateli jako primární skupinu group (GID nebo jméno skupiny)

-G groups zařadí uživatele do dalších skupin daných seznamem groups

-d homedir domovský adresář uživatele

-s shell shell pro uživatele (nebo /bin/false)

-m domovský adresář bude vytvořen pokud neexistuje

-M domovský adresář nebude vytvořen

-u UID založí uživatele s daným UID

Příklad :

$ useradd -g users -d /home/pepa -m -s /bin/bash pepa // založí uživatele pepa s lib. UID

$ useradd -u 1002 -g ucetni -G users,firma jana // založí uživatele jana s členstvím ve skupinách ucetni,users

a firma a s UID 1002

Další informace viz manuálová stránka man useradd. Zvlášť doporučuji věnovat pozornost adresáři /etc/skel a přepínači -D.





LINUX – uživatelské účty (7)

Modifikace uživatele

Uživatelské účty se modifikují pomocí příkazů usermod. Přepínače -g, -G, -s, -d, -u mají stejný význam jako v případě příkazu

useradd.

Syntaxe :

usermod [prepinace] username

Užitečné přepínače :

-l new_username změní uživatelské jméno uživatele při zachování UID a dalších údajů

-L zablokuje (LOCK) účet

-U odblokuje (UNLOCK) účet

Příklad :

$ usermod -l pepicek -d /home/pepicek pepa // změní uživatele pepa na pepicek a změní jeho homedir

$ usermod -L jana // zablokuje uživatele jana

Smazání uživatele

Uživatelské účty se modifikují pomocí příkazů userdel.

Syntaxe :

userdel [prepinace] username

Užitečné přepínače :

-r zároveň s účtem smaže i soubory v domovském adresáři a poštu

Příklad :

$ userdel pepa // smaže uživatele pepa

$ userdel -r jana // smaže uživatele jana včetně souborů v domovském adresáři a pošty





LINUX – uživatelské účty (8)

Změna hesla

Hesla uživatelů se vytvářejí a moddifikují pomocí příkazu passwd. Superuživatel může nastavit a změnit heslo komukoliv,

běžný uživatel může operovat pouze s heslem svým.

Syntaxe :

passwd [prepinace] [username]

Užitečné přepínače :

-l uzamkne účet (pouze root)

-u odemkne účet (pouze root)

-d smaže účet (pouze root)

-S zobrazí statut účtu

Příklad :

$ passwd // změní nebo nastaví heslo aktuálního uživatele

$ passwd jana // změní nebo nastaví heslo uživatele jana (pouze root)

$ passwd -S jana // zobrazí status uživatele jana (pouze root)