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 x GID clen1 .. clenN
-
název skupiny x – účet je aktivní, ! - skupina je zablokovaná group ID – jednoznačný číselný identifikátor skupiny nepovinný seznam uživatelů, kteří jsou také členy skupiny
Příklad : root:x:0: postfix:x:105:postdrop test:!:1001
//skupina root s GID 0 //skupina postfix s GID 105, jejím členem je navíc uživatel postdrop //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 x UID GID GECOS homedir shell
-
uživatelské jméno x – účet je aktivní, ! - účet je zablokován user ID – jednoznačný číselný identifikátor uživatele group ID – jednoznačný číselný identifikátor primární skupiny popis uživatele (např. jméno a příjmení) domovský adresář 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 rpc:x:71:71:system user for portmap:/:/bin/false ikopetschke:x:500:500:Igor Kopetschke:/home/ikopetschke:/bin/bash david:!:500:500:David Kmoch:/home/david:/bin/bash
/uživatel root s UID 0 //systémový uživatel rpc bez přístupu na shell //můj účet //účet se zablokovaným přihlášení
LINUX – uživatelské účty (3) /etc/shadow username:pwd_hash: .. expiration data .. username pwd_hash exp.data
-
uživatelské jméno hash hesla v MD5 ú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 $ groupadd -g 600 ucetni
// založí skupinu management s lib. GID // 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 $ groupmod -n financni ucetni
// změní skupině ucetni GID na 700 // 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 -G groups -d homedir -s shell -m -M -u UID
přiřadí uživateli jako primární skupinu group (GID nebo jméno skupiny) zařadí uživatele do dalších skupin daných seznamem groups domovský adresář uživatele shell pro uživatele (nebo /bin/false) domovský adresář bude vytvořen pokud neexistuje domovský adresář nebude vytvořen založí uživatele s daným UID
Příklad : $ useradd -g users -d /home/pepa -m -s /bin/bash pepa $ useradd -u 1002 -g ucetni -G users,firma jana
// založí uživatele pepa s lib. UID // 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 -L -U
změní uživatelské jméno uživatele při zachování UID a dalších údajů zablokuje (LOCK) účet odblokuje (UNLOCK) účet
Příklad : $ usermod -l pepicek -d /home/pepicek pepa $ usermod -L jana
// změní uživatele pepa na pepicek a změní jeho homedir // 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 Příklad : $ userdel pepa $ userdel -r jana
zároveň s účtem smaže i soubory v domovském adresáři a poštu // smaže uživatele pepa // 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 -u -d -S Příklad : $ passwd $ passwd jana $ passwd -S jana
uzamkne účet (pouze root) odemkne účet (pouze root) smaže účet (pouze root) zobrazí statut účtu
// změní nebo nastaví heslo aktuálního uživatele // změní nebo nastaví heslo uživatele jana (pouze root) // zobrazí status uživatele jana (pouze root)