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)