10. OS Linux: distribuce, uživatelská rozhraní, shell, uživatelské účty, souborový systém, obsahy adresářů první úrovně
10. OS Linux: distribuce, uživatelská rozhraní, shell, uživatelské účty, souborový systém, obsahy adresářů první úrovně
GNU/Linuxová distribuce je označení kompletu programových balíků provozovatelných na operačním systému GNU/Linux. Tzn. nejenom vlastního jádra operačního systému ale i dalších aplikací, které mohou být, ale většinou nejsou autorským dílem distributora. Tyto distribuce se liší například ve způsobu instalace programových balíků, integrací vlastních konfiguračních metod, atp. V angličtině „to distribute“ znamená rozšířit, rozprostřít, rozdat ap.
Windows dodává jen jedna firma, Microsoft, tudíž neexistuje více distribucí. GNU/Linux může dodávat každý, a proto existuje spousta profesionálních nebo amatérských distribucí. Problémem pro začátečníka může být právě výběr distribuce. Všechny distribuce však mají stejný základ - jádro OS, knihovny a nástroje od GNU. Liší se však “obalem“ (tzn. instalátorem) a “složením“ (tzn. software, unikátní úpravy).
Debian – Tato distribuce je jedna z nejstarších. Jejím zakladatelem je Ian Murdock. Distribuce je pojmenována po jeho ženě (Debra). Je to přísná open-source distribuce, ktrerá je vyvíjena dobrovolníky z celého světa. Debian nabízí on-line repozitář (server, kde jsou uloženy zdrojové kódy) softwarových balíků.
Fedora – Jedná se o distribuci, za kterou stojí (sponzoruje) Red Hat, protože je na tomto systému založena. Je to volná distribuce, která vzniká podobně jako Debian. Klade důraz na otevřenost a bezpečnost.
Red Hat – „Červený klobouk“. Jedna z nejstarších distribucí. Dnes velmi komerční, hlavně díky Red Hat Enterprise Linuxu. V Red Hatu vznikl balíčkovací systém RPM. Na desktopech se již moc nepoužívá. Spousta uživatelů přešla na distribuce založené na Red Hatu.
Slackware – Jedna z prvních distribucí, je spíše pro pokročilejší uživatele. Po instalaci se musí ukázat hodně zdatnosti než se propracuje alespoň k X Window.
Mandriva (dříve Mandrakelinux) – Tato distribuce používá balíčkovací systém RPM. Mandriva je vhodná pro začátečníky, protože po snadné instalaci je připraven již plně funkční sytém.
Gentoo – Je zcela odlišný od ostatních distribucí. Instalace totiž neprobíhá formou binárních souborů, ale kompiluje se přímo na PC. Po dlouhé instalaci uživatel dostává optimalizovaný systém a software na svůj počítač.
SUSE – Původně samostatná distrbuce, později koupena firmou Novell. Další distribuce vhodná pro začátečníky. Je možné si koupit krabicovou verzi, ale dá se stáhnout zdarma z internetu.
Ubuntu – Tato distribuce vhodná pro začátečníky vychází z Debianu. Je volně dostupná, včetně možnosti bezplatného zaslání instalačních CD poštou. Ubuntu zajišťuje komunitní i profesionální podporu. Nové verze vychází každý rok. Kromě Ubuntu existuje ještě Kubuntu, které používá grafické uživatelské rozhraní KDE, narozdíl od Ubuntu, které používá GNOME.
Grafické uživatelské rozhraní
Unix a Linux nezačleňují uživatelská rozhraní do jádra systému. Místo toho je implementují pomocí programů uživatelské úrovně. To se týká jak textového módu, tak grafického uživatelského prostředí. Díky takovémuto řešení je samotný systém flexibilnější. Má to ale nevýhodu v tom, že je na druhou stranu velmi jednoduché implementovat pro každý program různá uživatelská rozhraní. Důsledkem je, že se takovýto systém uživatelé pomaleji učí.
Grafické prostředí, které Linux používá primárně, se nazývá "X Window System" (zkráceně X). Ale ani X přímo neimplementují uživatelské rozhraní. X Window pouze zavádí systém oken, tedy sadu nástrojů, pomocí kterých může být grafické uživatelské rozhraní implementované.
Tři z nejpopulárnějších stylů uživatelských rozhraní postavených na X jsou Athena, Motif a Open Look.
Souborový systém, struktura
Celou stromovou strukturu adresářů je možné rozdělit na menší části, tzv. svazky. Každá z těchto částí může být umístněna na vlastním disku nebo samostatné diskové oblasti - logické sekci. Tak se lze jednoduše přizpůsobit omezením velikosti disků a zároveň usnadnit zálohování i ostatní úkoly spojené se správou systému. Nejdůležitější z těchto částí jsou souborový systém "root" (kořenový svazek), dále souborové systémy /usr, /var a /home. Každý systém souborů má jiné určení. Adresářová stromová struktura byla navržená tak, aby fungovala i v síti počítačů s operačním systémem Linux. Uživatelé a programy tak mohou pomocí sítě sdílet některé části systémů souborů, a to buď prostřednictvím zařízení určených pouze pro čtení (např. CD.ROM), nebo pomocí sítě se systémem NFS.
Určení takto vymezených částí adresářové struktury je popsané v dalším textu. Souborový systém "root! (kořenový svazek) je specifický pro každý počítač. Obecně je uložen na lokálním disku (avšak může to být i virtuální disk v paměti RAM - tzv. "ramdisk", nebo síťová disková jednotka). Kořenový svazek obsahuje soubory nutné pro zavedení systému a jeho uvedení do stavu, ve kterém mohou být připojené ostatní souborové systémy. Obsah kořenového souborového systému postačuje pro práci v jednouživatelském režimu. Na tomto svazku jsou rovněž uloženy nástroje pro opravy poškozeného souborového systému a pro obnovení ztracených souborů ze záloh.
Souborový systém "/" (kořenový svazek) je specifický pro každý počítač. Obecně je uložen na lokálním disku (avšak může to být i virtuální disk v paměti RAM - tzv. "ramdisk", nebo síťová disková jednotka). Kořenový svazek obsahuje soubory nutné pro zavedení systému a jeho uvedení do stavu, ve kterém mohou být připojené ostatní souborové systémy. Obsah kořenového souborového systému postačuje pro práci v jednouživatelském režimu. Na tomto svazku jsou rovněž uloženy nástroje pro opravy poškozeného souborového systému a pro obnovení ztracených souborů ze záloh.
Souborový systém /usr obsahuje všechny příkazy, knihovny, manuálové stránky a jiné soubory, jejichž obsah se nemění a které uživatel potřebuje při běžném provozu. Žádný ze souborů svazku /usr by neměl být specifický pro některý počítač. Rovněž by se neměl při normálním provozu měnit. Tyto podmínky zaručují, že soubory uložené v souborovém systému /usr bude možné efektivně sdílet v síti. Sdílení tohoto svazku je vhodné dohledávat v rámci celého systému soubory určitého typu, například manuálové stránky aplikací uložené na mnoha různých místech. Programátory by jistě strašila noční můra - jak v takovémto případě vytvořit programy, které by byly schopné v případě potřeby manuálové stránky všech aplikací nalézt.
Souborový systém "root"
Kořenový svazek "root" by obecně měl být malý, protože obsahuje velmi kritické soubory. U malého souborového systému, který se mění jenom zřídka, je menší pravděpodobnost poškození. Poškození souborového systému "root" většinou znamená, že operační systém na tomto svazku nebude možné zavést. Tento problém lze řešit pouze pomocí speciálních opatření (např. zavedením systému z diskety), a to by chtěl riskovat asi málokterý správce. Obecně by kořenový adresář systémového svazku neměl obsahovat žádné soubory, snad kromě standardního obrazu systému. Ten se obvykle jmenuje /vmlinuz. Všechny ostatní soubory by měly být uloženy v podadresářích kořenového adresáře, obvykle tímto způsobem:
/bin | Příkazy potřebné pro zavedení systému a pro práci běžných uživatelů po jeho zavedení. |
/sbin | Stejné jako u adresáře /bin. Příkazy v tomto podadresáři ale nejsou určeny běžným uživatelům, i když je též mohou použít (je-li to nutné nebo možné). |
/etc | Konfigurační soubory specifické pro daný počítač. |
/root | Domovský adresář superuživatele. |
/lib | Sdílené knihovny pro programy v kořenovém souborovém systému. |
/lib/modules | Zaváděcí moduly jádra systému - zvláště ty, které jsou potřeba pro zavedení systému při zotavení po neočekávaných událostech (např. síťové ovladače a ovladače pro souborový systém). |
/dev | Speciální soubory. |
/tmp | Dočasné soubory. Programy, které se spouští až po zavedení systému, by správně měly používat místo adresáře /tmp adresář /var/tmp, protože je velmi pravděpodobné, že leží na větším disku. |
/boot | Soubory, jež používá zavaděč operačního systému (angl. bootstrap loader), např. LILO. Je dobré mít v tomto podadresáři uložené obrazy jádra (místo toho, aby se ukládaly přímo v kořenovém adresáři). V případě, že jich máte víc, může obsah adresáře /boot značně narůst. V tom případě bude lepší mít jej v samostatném souborovém systému. Tím se také zajistí, že obrazy jádra budou uloženy na prvních 1024 cylindrech disku IDE. |
/mnt | Přípojné místo pro dočasná připojení dalších systémů souborů správcem systému. Nepředpokládá se, že by tento adresář využívaly pro automatická připojení souborových systémů programy. Adresář /mnt může být rozdělen na podadresáře (např. /mnt/dosa pro disketovou mechaniku používanou v souborovém systému MS-DOS, /mnt/exta pro tutéž mechaniku využívanou v souborovém systému ext2 a podobně). |
/proc, /usr, /var, /home | Přípojná místa pro další souborové systémy. |
Adresář /etc
Adresář /etc obsahuje mnoho souborů. Některé z nich jsou popsány v dalším textu. Pokud jde o ostatní, měli byste nejdřív zjistit, ke kterému programu patří, a pak si přečíst manuálové stránky k tomuto programu. V adresáři /etc je uloženo také hodně síťových konfiguračních souborů, které jsou popsané v "Průvodci správce sítě operačního systému Linux".
/etc/rc, /etc/rc.d a /etc/rc?.d | Skripty a adresáře skriptů, které se spouští při startu, nebo v případě, že se mění úroveň běhu systému. Podrobnější informace najdete v kapitole o procesu init. |
/etc/passwd | Databáze uživatelů systému s položkami, v nichž je uloženo uživatelské jméno i skutečné jméno uživatele, domovský adresář, šifrované heslo a některé další informace. Formát je popsán v manuálové stránce pro program passwd. |
/etc/fdprm | Tabulka parametrů disketové jednotky. Popisuje jak vypadají různé formáty disket. Používá ji program setfdprm. Víc informací uvádí manuálová stránka programu setfdprm. |
/etc/fstab | Seznamy souborových systémů připojovaných automaticky při startu příkazem mount .a (skriptem /etc/rc, nebo odpovídajícím souborem, jenž se spouští při startu systému). V systému Linux obsahuje rovněž informace o odkládacích oblastech "swap", které automaticky používá příkaz swapon .a. Podrobnější informace viz podkapitola 4.8.5 a manuálové stránky k příkazu mount. |
/etc/group | Soubor podobný souboru /etc/passwd, ale místo uživatelů popisuje pracovní skupiny. Podrobnější informace viz manuálová stránka pro soubor group. |
/etc/inittab | Konfigurační soubor procesu init. |
/etc/issue | Soubor obsahuje výstup programu getty, který se zobrazí před výzvou pro přihlášení uživatele. Obvykle obsahuje stručný popis systému nebo uvítací hlášku. Obsah určuje správce systému. |
/etc/magic | Konfigurační soubor programu file. Obsahuje popisy různých formátů souborů, podle kterých pak program file tyto typy rozpoznává. Více informací najdete v manuálových stránkách pro magic a file. |
/etc/motd | Tzv. "zpráva pro tento den" (angl. message of the day) - automatický výstup na terminál uživatele po úspěšném přihlášení do systému. Obsah volí správce systému. Často se využívá pro předávání informací (např. upozornění na plánovaná zastavení systému apod.) všem uživatelům systému. |
/etc/mtab | Seznam aktuálně připojených souborových systémů. Jeho obsah po zavedení systému a připojení určených souborových systémů prvotně nastavují inicializační skripty, v běžném provozu pak automaticky příkaz mount. Používá se v případech, kdy je potřeba zjistit, které souborové systémy jsou připojené, např. při zadání příkazu df. |
/etc/shadow | Soubor tzv. "stínových" přístupových hesel (shadow password) uživatelů v systémech, které mají nainstalovanou podporu systému stínových hesel. Kódovaná stínová hesla jsou z bezpečnostních důvodů přeneseny ze souboru /etc/passwd do souboru /etc/shadow, který může číst pouze superuživatel. Snižuje se tak pravděpodobnost odhalení některého z přístupových hesel při průniku do systému. |
/etc/login.defs | Konfigurační soubor příkazu login. |
/etc/printcap | Podobně jako u souboru /etc/termcap, až na to, že soubor je určený pro tiskárny. Odlišná je i jeho syntaxe. |
/etc/profile, /etc/csh.login, /etc/csh.cshrc | Soubory spouštěné při přihlášení uživatele nebo při startu systému interprety příkazů Bourne shell nebo C shell. Umožňují správci systému stanovit globální nastavení stejné pro všechny uživatele. Viz manuálové stránky k příslušným interpretům příkazů. |
/etc/securetty | Soubor identifikuje zabezpečené terminály, tedy terminály, ze kterých se může přihlašovat superuživatel. Typicky je v seznamu uvedena pouze virtuální konzola, takže je nemožné (nebo přinejmenším těžší) získat oprávnění superuživatele přihlášením se po modemu nebo ze sítě. |
/etc/shells | Soubor, jenž uvádí seznam důvěryhodných interpretů příkazů. Příkaz chsh umožňuje uživatelům změnit shell spustí při přihlášení, a to pouze na některý z interpretů uvedený v tomto souboru. Proces ftpd, jenž běží na hostitelském počítači a poskytuje služby FTP pro klientské počítače, rovněž kontroluje, zda je uživatelův příkazový interpret uveden v tomto souboru a nedovolí připojit se klientům, jejichž shell v tomto seznamu uveden není. |
/etc/termcap | Databáze vlastností terminálu. Popisuje, kterými "escape" sekvencemi se řídí různé typy terminálů. Každý program je napsaný tak, že místo přímého výstupu "escape" sekvence, jež by fungovala pouze s konkrétním typem terminálu, hledá v tabulce /etc/termcap sekvenci, která odpovídá tomu, co chce program na terminálu zobrazit. Pak může většina programů správně obsluhovat většinu typů terminálů. Více informací uvádí manuálové stránky pro termcap, curs-termcap a terminfo. |
Adresář /dev
Adresář /dev obsahuje speciální soubory pro všechna zařízení. Speciální soubory jsou pojmenované podle určitých konvencí. Ty jsou podrobně popsán v "Seznamu zařízení operačního systému Linux" (viz [Anv]). Speciální soubory se vytváří v průběhu instalace operačního systému, v běžném provozu pak skriptem /dev/MAKEDEV. Podobný je skript /dev/MAKEDEV.local. Ten upravuje a používá správce systému, když vytváří čistě lokální speciální soubory a linky. Lokální speciální soubory jsou ty, které nejsou vytvořené standardním postupem pomocí skriptu MAKEDEV, typicky například speciální soubory pro některé nestandardní ovladače zařízení.
Souborový systém /usr
Souborový systém /usr je často dost velký, protože jsou v něm instalované všechny programy. Všechny soubory v systému /usr jsou obvykle instalované přímo z distribuce systému Linux. Všechny další lokálně instalované programy se ukládají do adresáře /usr/local. To umožňuje správci systému instalovat vyšší verze Linuxu z nové verze distribuce nebo i úplně jiné distribuce operačního systému bez toho, že by bylo potřeba současně instalovat všechny programy znovu. Některé z podadresářů adresáře /usr jsou popsané níže, ty méně významné neuvádíme. Více informací přináší popis standardu FSSTND.
/usr/X11R6 | Všechny soubory systému X Window. Soubory pro X nejsou integrální součástí operačního systému z důvodů zjednodušení vývoje a instalace X. Adresářová struktura /usr/X11R6 je podobná stromu, který je vytvořený pod adresářem /usr samotným. |
/usr/X386 | Podobně jako u předchozího adresáře /usr/X11R6, ale pro systém X11 Release 5. |
/usr/bin | Zde se nachází téměř všechny uživatelské příkazy. Některé další příkazy jsou uložené v adresáři /bin nebo /usr/local/bin. |
/usr/sbin | Obsahuje ty příkazy pro správu systému, které nejsou potřeba přímo v souborovém systému "root" (zde je například uložená převážná většina serverových programů). |
/usr/man, /usr/info, /usr/doc | Manuálové stránky, informační dokumenty o projektu GNU, případně různé jiné soubory s dokumentací. |
/usr/include | Hlavičkové soubory pro programovací jazyk C. Z důvodů zachování konzistence by měly být spíš v adresáři /usr/lib, ale z historických důvodů jsou umístěné ve zvláštním adresáři. |
/usr/lib | Datové soubory pro programy a subsystémy, které se nemění. Jsou zde rovněž uloženy některé globální konfigurační soubory. Jméno lib je odvozeno od anglického slova "library" (knihovna). Původně totiž byly v adresáři /usr/lib uloženy knihovny podprogramů. |
/usr/local | Místo pro lokálně instalovaný software a další soubory |
Souborový systém /var
Systém /var obsahuje data, která se při běžném provozu systému mění. Soubory jsou specifické pro každý systém, a proto se data mezi jinými počítači v síti nesdílí.
/var/catman | Vyrovnávací paměť pro manuálové stránky, které jsou formátované na požádání. Zdroje pro tyto manuálové stránky jsou obvykle uložené v adresáři /usr/man/man*. Manuálové stránky v předem formátované verzi jsou uložené v adresáři /usr/man/cat*. Manuálové stránky je běžně třeba při prvním prohlížení formátovat. Formátované verze jsou pak uložené právě v adresáři /var/catman. Další uživatel, který si chce stejné stránky prohlížet, tak nemusí čekat na jejich opakované formátování. (Soubory v uvedeném adresáři /var/catman je obvykle potřeba mazat, stejně jako dočasné soubory v adresářích /tmp a /var/tmp.) /var/lib Soubory, které se při normálním provozu systému mění. /var/local Měnící se data pro programy instalované v adresáři /usr/local (tj. programy instalované správcem systému). Upozorňujeme, že lokálně instalované programy by měly používat i ostatní podadresáře nadřazeného adresáře /var, např. /var/lock. |
/var/lock | Soubory tzv. zámků. Většina programů dodržuje určitou konvenci a vytváří v adresáři /var/lock zámky. Tím dávají ostatním programům najevo, že dočasně využívají některé zařízení nebo soubor. Jiné programy, které by chtěly stejné zařízení či soubor ve stejném okamžiku používat, se o to nebudou pokoušet. |
/var/log | Adresář obsahuje tzv. log-soubory různých programů. Například program login zaznamenává (do souboru /var/log/wtmp) všechna přihlášení a odhlášení uživatelů systému, program syslog ukládá (do souboru /var/log/messages) všechny hlášky jádra systému a systémových programů. Velikost souborů v adresáři /var/log dost často nekontrolovaně roste. Proto se musí v pravidelných intervalech mazat. |
/var/run | Adresář, do něhož se ukládají soubory obsahující informace o systému, jež platí až do jeho dalšího zavedení. Tak například soubor /var/run/utmp obsahuje informace o současně přihlášených uživatelích systému. /var/spool Adresáře pro elektronickou poštu, systém "news", tiskové fronty a další subsystémy, které využívají metodu "spool" a princip řazení úloh do fronty. Každý z těchto subsystémů má v tomto adresáři svůj vlastní podadresář, např. poštovní schránky uživatelů jsou uložené v podadresáři /var/spool/mail. |
/var/tmp | Do adresáře /var/tmp se ukládají velké dočasné soubory a dočasné soubory, které budou existovat déle než ty, které se ukládají do adresáře /tmp. (Avšak správce systému by měl dbát na to, aby stejně jako v adresáři /tmp, ani v adresáři /var/tmp nebyly uloženy velmi staré dočasné soubory.) |
Souborový systém /proc
Systém souborů /proc je vlastně imaginárním Souborovým systémem. Ve skutečnosti na disku neexistuje. Místo toho jej v paměti vytváří jádro systému. Ze systému souborů /proc lze získávat různé aktuální informace o systému (původně o procesech - z toho je odvozeno jeho jméno). Některé z významnějších souborů a adresářů popisujeme níže. Samotný souborový systém /proc je podrobněji popsán na manuálové stránce proc.
/proc/1 | Adresář s informací o procesu číslo 1. Každý z procesů má v adresáři /proc vlastní podadresář, kterého jméno je stejné, jako identifikační číslo procesu. |
/proc/cpuinfo | Různé informace o procesoru. Například typ, výrobce model, atd. |
/proc/devices | Seznam ovladačů zařízení konfigurovaných pro aktuálně běžící jádro systému. |
/proc/dma | Informuje o tom, které kanály DMA jsou právě využívány. |
/proc/filesystems | Souborové systémy konfigurované v jádru systému. |
/proc/interrupts | Informuje o tom, která přerušení jsou využívána, i o historii žádostí o využití každého z nich. |
/proc/ioports | Informuje o tom, který z vstupně-výstupních portů se momentálně využívá. |
/proc/kcore | Obraz fyzické paměti systému. Má velikost odpovídající velikosti fyzické paměti systému. Ve skutečnosti ale samozřejmě nezabírá takovéto množství paměti, protože jde o soubor generovaný "na požádání", tedy pokaždé jenom v okamžiku, kdy k němu různé programy přistupují. Uvědomte si, že soubory souborového systému /proc nezabírají ve skutečnosti (než je zkopírujete na nějaké jiné místo na disku) vůbec žádný diskový prostor. |
/proc/kmsg | Výstupní hlášení jádra systému. Zde uložená hlášení využívá i program syslog. |
/proc/ksyms | Tabulka symbolů jádra systému. |
/proc/loadavg | Statistika zatížení systému - tři celkem nic neříkající indikátory toho, kolik práce systém momentálně má. |
/proc/meminfo | Informace o využití paměti, jak fyzické, tak virtuální (swap). |
/proc/modules | Informuje o tom, které moduly jádra jsou právě zavedeny v paměti. |
/proc/net | Informace o stavu síťových protokolů. |
/proc/self | Symbolický link do adresáře procesů toho programu, který zrovna přistupuje k souborovému systému /proc. Když k systému souborů /proc současně přistupují dva různé procesy, budou mít přidělené dva různé linky. Tímto způsobem se mohou programy pohodlně a jednoduše dostat k vlastnímu adresáři. |
/proc/stat | Různé statistiky týkající se systému. Např. počet chyb stránkování během zavádění systému a podobné. |
/proc/uptime | Informuje o tom, jak dlouho systém běží. |
/proc/version | Verze jádra systému. |
Většina výše popsaných souborů má textovou formu. Jsou tedy celkem dobře čitelné pomocí standardních nástrojů. Avšak velmi často jsou formátované takovým způsobem, že informace v nich obsažené jsou pro běžného uživatele na pohled dost těžce "stravitelné". Proto existuje mnoho příkazů, které - kromě toho, že čtou informace obsažené v souborech systému /proc, upravují jejich formát do srozumitelnější podoby. Tak například program free čte data ze souboru /proc/meminfo, převádí velikost v bajtech na kilobajty a přidá něco málo dalších informací o využití pamět.
Shell je označení programu, který čte příkazy z terminálu nebo ze souboru (tzv. shell scriptu) a spouští je. Z toho důvodu se shell označuje také termínem interpret příkazů.
Textové shelly -Unixové shelly, Almquist shell (ash), Bourne-Again shell (bash), Bourne shell (sh), C shell (csh), es shell (es), Korn shell (ksh), rc shell (rc), Scheme Shell (scsh),TENEX C shell (tcsh), Z shell (zsh), Neunixové shelly , COMMAND.COM
Grafické schelly
prostředí AmigaOS : Workbench (GUI-Shell přidáno od AmigaOS 2.0), Ambient (pro MorphOS), Directory Opus, ScalOS, Wanderer (pro AROS), DOSSHELL, Macintosh Finder.
prostředí Microsoft Windows : Aston shell , BB4Win, Emerge Desktop, Geoshell ,HoverDesk ,LiteStep ,SharpE .
Průzkumník Windows (zabudovaný shell)
prostředí X Window System (hlavně operační systémy na bázi Unixu):
X window manažeři, jako Blackbox a Fluxbox
plné prostředí pracovní plochy např.:
Účet
Používá-li počítač více lidí, je obvykle nutné mezi jednotlivými uživateli rozlišovat. Například proto, aby jejich osobní soubory a data byly osobními v pravém smyslu slova. Identifikace uživatelů je ale důležitá i v případě, že systém využívá pouze jedna osoba, což se týká převážné většiny mikropočítačů.
Proto má každý uživatel systému přiděleno jednoznačné uživatelské jméno, které zadává při každém přihlášení.
Avšak pojem "účet" je poněkud širší a zahrnuje - kromě uživatelského jména - i některé další informace o uživateli. Pojmem uživatelský účet se označují všechny soubory, zdroje a informace, jež se vztahují k danému uživateli. Běžně se termín "účet" spojuje s bankovním sektorem. V komerčním výpočetním systému se kolem každého účtu skutečně točí nějaké peníze. Ty mohou z "účtu" mizet různou rychlostí, podle toho, jak moc uživatel systém zatěžuje.
Tak například diskový prostor lze ohodnotit cenou za megabajt uložených dat a den, čas procesoru může mít určitou cenu za sekundu využití a podobně.
Vytváření uživatelských účtů
Samotné jádro systému Linux považuje uživatele systému za pouhé číslo. Každého uživatele lze totiž identifikovat podle jednoznačného celého čísla, tzv. identifikačního čísla uživatele (angl. user ID, zkráceně UID). Je tomu tak proto, že počítač umí zpracovat čísla rychleji a jednodušeji než jména v textové formě. Jména v textové podobě a přidělená uživatelská jména se udržují ve zvláštní databázi mimo vlastní jádro. Tato databáze obsahuje též další informace o uživatelích systému.
Když potřebujete vytvořit nový uživatelský účet, musíte přidat informace o novém uživateli do uživatelské databáze a vytvořit pro něj vlastní domovský adresář. Kromě toho by měl každý nový uživatel absolvovat školení. Je též vhodné nastavit pro nové uživatele přiměřené počáteční nastavení prostředí.
Většina distribucí systému Linux se dodává s programy pro vytváření uživatelských účtů.
Správce má dokonce k dispozici hned několik takovýchto programů. Dvě varianty, jejichž uživatelským rozhraním je příkazová řádka, jsou programy adduser a useradd. Existují i utility s grafickým uživatelským rozhraním. Ať už se jako správce systému rozhodnete pro kterýkoliv z programů, oceníte jejich hlavní přínos, tedy to, že omezují manuální práci s nastavováním na minimum, či dokonce úplně. I když na vás při administraci uživatelských účtů čeká mnoho dost spletitých detailů, díky těmto nástrojům vypadá jednoduše.. Postup při "ručním" zakládání nových uživatelských účtů uvádí odstavec 9.2.4.
Soubor /etc/passwd a další informační soubory
Základní databází uživatelů v systému Unix je textový soubor /etc/passwd (angl. password file), v němž jsou uvedeny platná uživatelská jména a další k nim přidružené informace. Každému uživateli odpovídá v souboru jeden záznam - řádek, který je rozdělen na sedm polí, jejichž oddělovačem je dvojtečka. Význam jednotlivých položek je následující:
1. Uživatelské jméno.
2. Heslo v zakódované podobě.
3. Identifikační číslo uživatele.
4. Identifikační číslo pracovní skupiny (angl. group ID, zkráceně GID).
5. Skutečné jméno uživatele, případně popis účtu.
6. Domovský adresář.
7. Příkazový interpret (nebo program), který se spustí po přihlášení.
Formát jednotlivých políček je podrobněji popsán v manuálové stránce passwd(5).
Každý uživatel systému má k souboru /etc/passwd přístup (může jej číst). Může tedy například zjistit přihlašovací jména ostatních uživatelů. To ale znamená, že jsou všem přístupná i hesla ostatních uživatelů (druhé pole každého záznamu). Hesla uložená v souboru /etc/passwd jsou zakódovaná, takže teoreticky nevzniká žádný problém. Avšak použitý kódovací algoritmus lze prolomit, zvlášť je-li zvolené heslo jednoduché (např. krátké slovo, jenž lze najít v nějakém slovníku, jméno nebo příjmení uživatele atd.). Proto z hlediska bezpečnosti není dobré mít hesla uložená přímo v souboru /etc/passwd.
Řada systémů Linux používá systém tzv. stínových hesel (angl. shadow passwords). Jde o alternativní způsob uložení uživatelských přístupových hesel, jež se zašifrovaná ukládají do jiného souboru (/etc/shadow), jenž může číst pouze superuživatel. Soubor /etc/passwd pak obsahuje v druhém poli pouze speciální znak. Program, který si potřebuje ověřit totožnost uživatele a má propůjčená přístupová práva vlastníka souboru (pomocí volání jádra setuid), může soubor /etc/shadow číst. Běžné programy, které používají pouze některé z dalších položek souboru /etc/passwd, přístup k heslům uživatelů systému nemají.
Výběr čísel uživatelského ID a ID skupiny
Ve většině systémů nezáleží na tom, jaké jsou hodnoty UID a GID. Když ale používáte síťový Souborový systém NFS, musíte mít stejná UID a GID na všech systémech v síti. To proto, že i systém NFS identifikuje uživatele podle hodnoty UID. Jestliže systém NFS nepoužíváte, můžete vybírat identifikační čísla uživatele a skupiny podle automatického návrhu některého z nástrojů pro správu uživatelských účtů.
Když v síti využíváte NFS, budete si muset zvolit některý z mechanismů synchronizace informací o uživatelských účtech. Jednou z možností je systém NIS - Network Information Service (viz [Kir]).
META: možná na nesprávném místě? Měli byste se také vyvarovat opakovanému přidělování stejných uživatelských čísel (i textových uživatelských jmen), protože nový vlastník UID (případně uživatelského jména) by tak měl přístup k souborům bývalého vlastníka, k jeho elektronické poště a dalším informacím.
Nastavení uživatelského prostředí: adresář /etc/skel
Když jste již pro nového uživatele vytvořili vlastní domovský adresář, můžete nastavit vlastnosti uživatelského prostředí tak, že do domovského adresáře nového uživatele nakopírujete některé soubory z adresáře /etc/skel. Správce systému si totiž může v adresáři /etc/skel vytvořit konfigurační soubory, jež novým uživatelům vytvoří příjemné základní uživatelské prostředí. Administrátor může například vytvořit soubor /etc/skel/.profile, v němž lze nastavením proměnné prostředí EDITOR vybrat některý z textových editorů, jenž by měl pro méně zkušené uživatele přátelské ovládání.
Avšak obvykle se doporučuje mít v adresáři /etc/skel co nejméně souborů, protože by jinak bylo téměř nemožné upravit na větších víceuživatelských systémech při každé změně konfigurační soubory v již existujících uživatelských adresářích. Když se například změní název onoho uživatelsky příjemného editoru, všichni současní uživatelé si musí upravit svůj vlastní soubor .profile. Správce systému by se to mohl pokusit udělat automaticky, například pomocí skriptu, ale takovéto akce téměř pravidelně končí tak, že se nechtěně přepíše či poškodí nějaký jiný soubor.
Vždy když to situace dovolí, je lepší nastavovat globální konfigurace v globálních souborech, jako je /etc/profile. Pak lze nastavení pohodlně upravovat bez toho, že by se muselo měnit vlastní nastavení jednotlivých uživatelů systému.