Úvod
Počítačové sítě
Visual Basic 6
PHP
Technické vybavení
Technická dokumentace
Technické vybavení
Obsah
Kapitola 1
Kapitola 2
Kapitola 3
Kapitola 4
Kapitola 5
Kapitola 6
Kapitola 7
Kapitola 8
Kapitola 9
Kapitola 10
Kapitola 11
Kapitola 12
Kapitola 13
Kapitola 14
Kapitola 15
Kapitola 16
Kapitola 17
Kapitola 18
Kapitola 19
Kapitola 20
Kapitola 21
Kapitola 22
Kapitola 23
Kapitola 24
Kapitola 25
Kapitola 26
Kapitola 27
Kapitola 28
Kapitola 29
Kapitola 30
:: 9. Správa uživatelů (17. - 18. hodina)

9.1 Schémata uživatelů (privátní, veřejné)

Když vytváříme uživatele, je zařazen do své primární skupiny podle jednoho ze dvou základních schémat.

Privátní schéma

Uživateli je přiřazena primární skupina stejného jména (např. uživateli host by byla přiřazena primární skupina host), kterou může spravovat.

Veřejné schéma

Uživatel je přiřazen do primární skupiny, která je veřejnou skupinou, např. je přiřazen do skupiny "users". Protože do této skupiny jsou přiřazování všichni noví uživatelé, může ji spravovat jen systémový administrátor.

9.2 Založení uživatele

Z příkazového řádku lze založit uživatele příkazem
useradd jméno
Tím se založí uživatel do souboru /etc/passwd a /etc/shadow.
Tímto příkazem se sice vytvoří uživatel, ale nemá svůj domovský adresář a nemá heslo.

V souboru /etc/passwd jsou uloženi uživatelé a v souboru /etc/shadow jsou uloženi i se svými kryptovanými hesly.
Soubor /etc/passwd je určen pro čtení komukoliv, soubor /etc/shadow může číst jen root. Je to z toho důvodu, že kdyby byl soubor s kryptovanými hesly přístupný komukoliv, mohl by záškodník použít program, který se hrubou silou bude snažit rozluštit hesla.

9.2.1 Příklad

Proveďte výpis souboru /etc/passwd a pokuste se i o výpis souboru /etc/shadow.

9.2.2 Struktura /etc/shadow

student:lsafljKS255sd:11525:0:99999:7:0:12345:

Vysvětlivky (zleva doprava)

jméno uživatele : zakryptované heslo : datum poslední změny : po kolika dnech může být heslo změněno : počet dnů před vypršením platnosti, kdy si uživatel může změnit heslo : kolik dní před vypršením platnosti hesla má být uživatel upozorněn : kolik dní je ještě heslo použitelné, ačkoli jeho platnost již vypršela : datum, kdy je účet zamknut :

Pokud je v políčku pro heslo hvězdička * nebo vvykřičník !, uživatel se nemůže přihlásit k systému, existuje jen kvůli využití nějakými programy nebo je jeho účet zamknut.
Pokud je políčko prázdné, může se uživatel přihlásit k systému bez hesla.

9.2.3 Struktura /etc/passwd

V /etc/passwd jsou informace o uživatelských účtech ve formátu:
host:x:1002:100:ucet pro hosta:/home/host:

Vysvětlivky parametrů:

název účtu : x znamená, že heslo existuje v /etc/shadow : UID uživatele : GID primární skupiny uživatele : komentář : domovský adresář :

9.2.4 Důležité parametry příkazu useradd

  • -m ... useradd -m jméno ...automaticky se vytvoří domovský adresář v adresáři home. Do domovského adresáře se zkopírují soubory ze vzorového adresáře /etc/skel, který slouží jako šablona pro nově vznikající domovské adresáře účtů.
  • -c ... během vytváření nového účtu je možné zadat komentář k danému účtu.
  • -g ... je možno definovat primární skupinu účtu buď ve formě čísla GID nebo jména skupiny.
  • -p ... je možno zadat heslo nově zakládanému účtu, heslo se ale musí zadávat již kryptovaně.
    Např. useradd -m -p "jsdfiklu58ESA" student
  • -e ... je možno zadat datum vypršení platnosti účtu.
    Např. useradd -m -e 2006-05-25 student
Pro rychlé vytvoření uživatele i s heslem se často používá kombinace příkazů useradd a passwd.
useradd -m -c "studentský účet" student
passwd student

9.3 Změna hesla uživatele

Uživatel si může změnit své heslo, root může měnit hesla všem.
passwd jméno
Pokud uživatel zadá jen příkaz passwd, bude měnit heslo sám sobě.

Parametry příkazu passwd

  • -l ... passwd -l student ... účet bude zamknut
  • -u ... passwd -u student ... účet bude odemknut
  • -S ... passwd -S student ... výpis statutu uživatele
    ve výpisu je jméno uživatele následované statutem - L - zamknut, NP - bez heslo, P - platné heslo, pak následuje datum poslední změny hesla, minimální doba platnosti, maximální doba platnosti, kolik dní před vypršením platnosti bude uživatel varován a poslední parametr je počet dní po vypršení platnosti, kdy ještě heslo bude akceptováno.
  • -i ... passwd -i číslo účet ... nastaví počet dnů, po kterých se účet deaktivuje po vypršení platnosti hesla.
  • -n ... passwd -n číslo účet ... nastaví minimální počet dnů před vypršením platnosti, během kterých si může uživatel změnit heslo.
  • -w ... passwd -w číslo účet ... počet dnů před vypršením platnosti hesla, během kterých bude uživatel upozorněn systémem.
  • -x ... passwd -x číslo účet ... nastaví maximální počet dnů, kdy je heslo platné

9.3.1 Příklad

passwd -x 100 -w 10 student
V tomto případě bude heslo platné po dobu 100 dnů a 10 dnů před vypršením platnosti bude uživatel upozorňován.

9.4 Změna parametrů uživatele

Příkazem usermod lze měnit některé parametry uživatelského účtu, jako například číslo UID, domovský adresář, primární skupinu uživatele.

usermod -d /novy_adresar/student -m student
změní domovský adresář uživatele student

usermod -u 105 student
změní UID uživatele student

usermod -g 1024 student
změní primární skupinu uživatele student, která musí existovat

usermod -G skupina,skupina2,skupina3 student
nastaví uživateli student další skupiny, jichž je členem. Pokud by uživatel byl členem skupiny, která není v seznamu uvedena, bude z ní odebrán.

9.5 Mazání uživatele

Příkazem userdel smažeme uživatelský účet.

userdel student
...smaže účet student - ze souborů /etc/passwd, /etc/shadow, /etc/group, ale domovský adresář nesmaže.

Pro to, aby se spolu s účtem smazal i domovský adresář, je nutné přidat parametr -r.
userdel -r student

9.6 Hesla uživatelů

Pokud chcete mít systém zabezpečen před útoky, je vhodné poučit uživatele o tom, jaká hesla by si měli, resp. neměli volit.
Nejsou vhodná hesla, která jdou snadno uhádnout. Např. heslo je podmnožinou uživatelského jména nebo v hesle se odráží některé známé informace o uživateli, jako jména jeho dětí, příbuzných, oblíbených písní, herců apod.
Vhodná jsou hesla, která obsahují alespoň 7 znaků, obsahují čísla i písmena, velká i malá, přičemž velké písmeno nemusí být jen na prvním místě a heslo je například složeninou nějakých zkratek z několika slov.
Dešifrovací programy často znají i zdánlivě bezpečné zaměnění nuly za O, jedničky za I, trojky za E apod.

9.7 Příklad

V /etc/shadow jsou záznamy ve formátu:
host:$1$gLiJCkz9$nNDsOVzS60QDljXeNi2Pm0:13132:0:99999:7:::

V tomto příkladu byl uživatel host založen s komentářem a domovským adresářem.

Po příkazu passwd -l host, kdy účet zamkneme, je v /etc/shadow změna:
host:!$1$gLiJCkz9$nNDsOVzS60QDljXeNi2Pm0:13132:0:99999:7:::
... u hesla je vykřičník, což znamená, že účet je zamknut a nepůjde se na něj přihlásit.

Pro zobrazení statutu účtu použijeme příkaz passwd -S host, zobrazí L, což znamená Locked.
host L 12/15/2005 0 99999 7 -1

Po odemknutí příkazem passwd -u host vykřičník z /etc/shadow zmizí a účet je opět funkční.
Zobrazíme status účtu host:
host P 12/15/2005 0 99999 7 -1
P znamená, že heslo je platné.

Pokud v /etc/shadow zakryptované heslo uživatele host smažeme, bude po zobrazení statutu uživatele
zobrazeni NP - no password.
host NP 12/15/2005 0 99999 7 -1

Po zadání příkazu passwd -i 5 host se změní počet dnů, které uplynou po vypršení hesla a účet bude deaktivován.
host NP 12/15/2005 0 99999 7 5
v /etc/shadow bude změna - host::13132:0:99999:7:5::

Po zadání příkazu passwd -n 14 host bude v /etc/shadow změna:
host::13132:14:99999:7:5::
je to počet dnů před vypršením platnosti, kdy si uživatel může změnit heslo.

Pro zadání počtu dnů před vypršením účtu, během kterých má být uživatel upozorněn na nutnost změny zadáme příkaz:
passwd -w 8 host
V /etc/shadow se projeví změny:
host::13132:14:99999:8:5::

Po zadání příkazu passwd -x 1000 host bude změněna doba platnosti hesla. V /etc/shadow se projeví změna:
host::13132:14:1000:8:5::
Poznámka
Čísla, která znamenají data, jsou ve formátu počtu dnů od 1.1.1970.
Příkazem passwd -S host zobrazíme výsledný status uživatele host:

host NP 12/15/2005 14 1000 8 5
Vysvětlivky: název účtu je host, bez hesla, změna účtu proběhla 15.prosince 2005, 14 dní před vypršením platnosti hesla si ho může uživatel změnit, heslo je platné po dobu 1000 dnů, 8 dní před vypršením platnosti hesla bude uživatel upozorněn systémem na nutnost změny, po 5-ti dnech po vypršení hesla bude účet deaktivován.

Změna domovského adresáře

usermod -d /home/host2 -m host
Tímto příkazem změníme domovský adresář uživatele host na /home/host2. Adresář předem nevytváříme. Přenesou se do něj všechny soubory z původního domovského adresáře a původní adresář zmizí. V podstatě dojde k přejmenování domovského adresáře.
Změny se projeví ve výpisu z /etc/passwd.

usermod -u 1003 host
Změna UID uživatele host. Ve výpisu z /etc/passwd najdeme změnu:
host:x:1003:100:ucet pro hosta:/home/host2:
UID musí být unikátní, proto nemůžeme přiřadit uživateli UID, které je již použito u jiného účtu.

usermod -g 42 host
Tímto příkazem změníme primární skupinu uživatele na skupinu s GID 42.
Skupina musí existovat.
Poznámka
Výpis skupin provedeme příkazem cat /etc/group. Jsou zde záznamy ve formátu:
cdrom:x:24:student,hal
Vysvětlivky: název skupiny : políčko pro heslo : číslo GID skupiny : uživatelé, kteří jsou členy této skupiny a není to jejich primární skupina


Uživatel může být členem ještě dalších skupin, nejen své primární skupiny. Přiřazení do skupiny nebo skupin provedeme příkazem
usermod -G 102,103,scanner host
Tímto příkazem přiřadíme uživatele host do skupin s GID 102 a 103 a do skupiny se jménem scanner.

9.8 Založení skupiny

groupadd sk1
vytvoří skupinu sk1, bude jí přiřazeno GID alespoň 100 takové, které je větší než GID všech ostatních skupin. GID musí být unikátní. GID menší než 100 jsou určeny pro systémové účty.

groupadd -g 1008 sk2
vytvoří skupinu sk2 s číslem GID 1008, pokud ještě toto číslo není použito.
Poznámka
Výpis skupin provedeme příkazem cat /etc/group. Jsou zde záznamy ve formátu:
cdrom:x:24:student,hal
Vysvětlivky: název skupiny : políčko pro heslo : číslo GID skupiny : uživatelé, kteří jsou členy této skupiny a není to jejich primární skupina

9.9 Mazání skupiny

groupdel sk1
Smazání skupiny lze provést jen pokud není primární skupinou nějakého účtu. Skupina musí existovat.

9.10 Cvičení

  • Založte uživatele pokus s komentářem "pokusný účet" a domovským adresářem /home/pokus.
  • Zobrazte si výpis /etc/passwd a /etc/shadow.
  • Účtu nastavte heslo pokus.
  • Zobrazte si výpis /etc/passwd a /etc/shadow a porovnejte s předchozím výpisem.
  • Vypište stutus účtu.
  • Zamkněte účet a vypište status.
  • Odemkněte účet.
  • Nastavte, aby 20 dnů před vypršením platnosti hesla si jej uživatel mohl změnit, heslo bylo platné po dobu 365 dnů, 10 dnů před vypršením platnosti hesla byl uživatel upozorněn na nutnost změny, po 2 dnech po vypršení platnosti hesla byl účet deaktivován.
  • Změňte domovský adresář na pokus2.
  • Zobrazte výpis z /etc/passwd a zkontrolujte.
  • Proveďte změnu zpět na domovský adresář /home/pokus a zkontrolujte ve výpisu z /etc/passwd.
  • Vytvořte skupinu pomocna_skupina.
  • Změňte primární skupinu uživatele pokus na pomocna_skupina.
  • Uživateli pokus přiřaďte další dvě libovolné skupiny.
  • Zkuste smazat skupinu pomocna_skupina.
  • Smažte uživatele pokus i s jeho domovským adresářem.
  • Smažte vytvořenou skupinu pomocná skupina.

Domácí úkol

Zopakujte si zakládání uživatele, skupiny, mazání uživatele i skupiny, nastavování parametrů, změnu parametrů a naučte se, co které parametry ve výpisech znamenají.

Shrnutí

  • umíte založit uživatele a znáte parametry zakládání
  • umíte založit skupinu a znáte parametry zakládání
  • umíte změnit paramety uživatele a víte, co které parametry ve výpisech znamenají
  • umíte smazat uživatele a znáte parametry mazání
  • umíte smazat skupinu a znáte podmínky smazání