Vítam Vás v treťom diele seriálu Linux shell. V tomto diele sa budem snažiť priblížiť Vám základnú prácu s užívateľmi, skupinami a ich právami. Tak poďme na to.
Užívatelia
Každý užívateľ v systéme má v domovskom adresári, čiže v /home vlastný adresár... Každý užívateľ musí mať svoje prihlasovacie meno a heslo. Informácie o užívateľovi, či už o jeho mene, hesle a iných veciach nájdete v /etc/password. Práva na editáciu tohoto súboru má z bezpečnostných dôvodov, len root samozrejme, ale právo na čítanie je základne nastavené pre všetkých. A je to z toho dôvodu, že väčšina programov potrebuje čítať z tohoto súboru potrebné veci. V súbore /etc/passwd boli síce hesla uchovávané v šifrovanej podobe, ale užívatelia si dávali príliš slabé heslá a s veľkou úspešnosťou sa tento súbor darilo dešifrovať. Preto v dnešnýchdistribúciach heslá do daného súboru neukladajú. Na ich mieste sa nachádza znak x, alebo *. Skutočné heslá sú v súbore /etc/shadow, ktorý je prístupný len užívateľovi root.
Výpis súboru /etc/passwd:root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
dhcp:x:101:101::/nonexistent:/bin/false
Ak ste si všimli, tak ako prvá položka v súbore je uvedené meno užívateľa. V druhej položke je uvedené heslo, zaň je dosadený znak x. Ďalšia položka obsahuje UID, čiže uživawteľské identifikačné číslo. Toto číslo je v systéme unikátne, čiže nemôže sa stať, že majú dvaja užívatelia rovnaké UID. neskôr nasleduje položka s obsahom GID, čiže identifikačné číslo skupiny. Tiež sa nemôže stať, aby mali dve skupiny rovnaké GID. Za dvojbodkou nasleduje popis užívateľa, sem môžete uviesť svoje reálne meno, alebo čokoľvek chcete. Predposledná položka obsahuje domovský adresár užívateľa. Základne je nastavené /home/uživateľ. Pod poslednou položkou nájdeme interpret príkazov, základne máme BASH. Nájdeme ho v /bin/bash.
Výpis súboru /etc/shadow:
root:$1$57ZYBds9tIJHfdT/udfXDf.Kse2ssm4D0:13187:0:99999:7:::
daemon:*:13487:0:99999:7:::
bin:*:13487:0:99999:7:::
sys:*:13487:0:99999:7:::
sync:*:13487:0:99999:7:::
games:*:13487:0:99999:7:::
man:*:13487:0:99999:7:::
lp:*:13487:0:99999:7:::
mail:*:13487:0:99999:7:::
news:*:13487:0:99999:7:::
uucp:*:13487:0:99999:7:::
proxy:*:13487:0:99999:7:::
www-data:*:13487:0:99999:7:::
backup:*:13487:0:99999:7:::
list:*:13487:0:99999:7:::
irc:*:13487:0:99999:7:::
eat:$1$57TBVds4tILHfdT/sdfMQf.Iae4ssm4I0:13187:0:99999:7:::
gnats:*:13487:0:99999:7:::
nobody:*:13487:0:99999:7:::
dhcp:!:13487:0:99999:7:::
V tej chvíli keď si užívateľ vyberá svoje prístupové heslo, systém mu pridelí náhodne vygenerované číslo, čiže salt. S pomocou tohoto čísla sa zakóduje heslo, ktoré si užívateľ zvolil. Salt a zakódované heslo nájdeme v súbore /etc/shadow. Pri prihlasovaní do systému sa najprv načíta hodota salt a z jej pomocou sa zakóduje heslo, ktoré užívateľ zadal pri prihlasovaní. Ak sú výsledné reťazce rovnaké, máme prístup do systému.
Pozrime sa na na výpis /etc/shadowV prvej položke nájdeme samozrejme užívateľské meno. V ďalšej položke sa nachádza zašifrované heslo, ktoré je v prípade účtu systémových účtov nahradené znakom "*", alebo "!". našom prípade je to "*". Ďalej je definovaný počet dňov od poslednej zmeny hesla. Pokiaľ je tam nastavená nula, užívateľ si môže heslo meniť ľubovolne. Nasleduje počet dňí po ktorých musí užívateľ heslo zmeniť, pokiaľ je nastavené 99999, užívateľ heslo nemusí vôbec meniť. Hneď za tým sa nachádza položka, ktorá uvádza koľko dní pred vypršaním hesla bude o tom podaná správa užívateľovi. Posledná položka obsahuje na koľko dní chceme konto zablokovať, väčšinou zostáva prázdna.
Skupiny
Keby som mal uviesť krátku definíciu povedal by som, že to sú skupiny užívateľov, ktorým majú byť poskytnuté rovnaké pracovné podmienky v systéme. Môžeme napríklad vytvoriť skupinu užívateľov, ktorá bude mať prístup ku kancelárskym balíkom a nebude mať prístup k multimédiám. Každý užívateľ musí patriť aspoň do jednej skupiny užívateľov, môže patriť aj do desiatich skupín. Takýmto spôsobom sa dajú pomerne dobre kombinovať práva užívateľov.
Všetky informácie o skupinách a ich členoch sa nachádzajú v /etc/group:root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:lam1ca
tty:x:5:
disk:x:6:
lp:x:7:cupsys
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:cupsys,lam1cka
fax:x:21:
voice:x:22:
cdrom:x:24:haldaemon,lam1cka
floppy:x:25:haldaemon,lam1cka
V prvej položke sa nachádza označenie skupiny, teda jej názov. Ďalej vidíme heslo skupiny a identifikačné číslo GID. Za poslednou dvojbodkou sa nachádza zoznam užívateľov, ktorý do tejto skupiny patria. Systém automaticky vytvára niekoľko skupín, do ktorých automaticky zaraďuje niektorých užívateľov.
Pridanie užívateľského účtu
Spôsobom ako vytvoriť užívateľský účet je niekoľko. Môžeme ich rozdeliť do dvoch základných skupín. Vytvorenie užívateľa pomocou GUI - Grafického prostredia, alebo pomocou shell. V tomto seriáli sa zaoberáme shellom, tak grafický režim vynecháme. Prvý krok bude prihlásenie sa za užívateľa root, vykonáme príkazom su. Na vytvorenie účtu použijeme príkaz useradd.
$ useradd [-D] [-g skupina] [-b domovsky adresár] [-s shell]
V niektorých distribúciach stačí zadať: "useradd eat -g multimedia -b /home/eat
Pridali sme užívateľa eat, ktorý patrí do skupiny multimédiá, domovský adresár sa nachádza v /home/eat. Vo väčšine distribúcii je shell nastavený BASH.
Pridanie skupiny
Rovnako ako môžeme vytvárať/odstraňovať užívateľov, tak jednoducho môžeme aj vytvárať/odstraňovať skupiny. Na vytváranie skupín existuje príkaz groupadd.
$ groupadd [-g GID] [-r] [-f] názov skupiny
Parameter -g definuje číslo skupiny. Toto číslo musí byť v systéme jedinečné.