Linux:Adresářová struktura: Porovnání verzí

Smazaný obsah Přidaný obsah
oprava kódu
Jj14 (diskuse | příspěvky)
typo
Řádek 1:
= Základní vlastnosti =
* V operačních systémech unixového typu je jen jedna velká stromová struktura začínající v kořenovém adresáři, Linux/Unix rozlišuje velká a malá písmena (standardně se u názvů souborů i adresářů používají malá písmena), jména souborů jsou dlouhá max. 255 znaků (ext2 fs), v názvu souboru se nesmí vyskytnout znak NUL (binární nula) a znak lomítko "/", celé jméno souboru včetně cesty je dlouhé max. 4 kB, a k oddělování adresářů a souborů používá normální lomítko "/".
* Soubory začínající tečkou "." jsou skryté a nevidíme je pokud je extra nevyžádáme (přepínač "-a" u přikazupříkazu ls ap.)
 
== Souborové systémy ==
Řádek 22:
* Základní adresáře OS mají pevné názvy a použití - viz FHS - Filesystem Hierarchy Standard (norma hierarchie souborového systému) pro OS Unixového typu (Unix-like).
* Každý adresář obsahuje automaticky 2 položky: "." představuje běžný adresář, ".." představuje nadřazený adresář.
* Rozlišujeme pojem relativní a absolutní cesty: absolutní začíná lomítkem, tj. od kořenového adresáře; relativní začíná od aktuálního adresáře.
* Speciální adresáře - výjimečné svým obsahem a použitím. Nejznámější jsou tyto:
:; <code>'''/etc'''</code> : globální (systémová) konfigurace celého počítače (uživatelská nastavení jsou vždy v domácích adresářích jednotlivých uživatelů). Veškeré chování systému je řízeno konfiguračními soubory v tomto adresáři a jeho podadresářích. Vždy zálohovat alespoň tento adresář (komprimovaný se vejde na disketu).
Řádek 77:
:: <code>'''/var/spool'''</code> - různé systémové fronty:
::: <code>'''at/*'''</code> - fronty spouštění úloh v budoucnu démonem atd
::: <code>'''cron/*'''</code> - fronty opakovaného spoštěníspouštění úloh v budoucnu démonem crond
::: <code>'''lpd/*'''</code> - fronty různých tiskových služeb (lpr, LPRng, cups, ...
::: <code>'''mail/*'''</code> - nevyzvednutá pošta lokálních uživatelů počítače.
Řádek 95:
| /mail || Adresář cfg souborů pro transport pošty
|-
| /pam.d || KonfigračníKonfigurační soubory pro autentikaci (ověření identity) a autorizace (ověření oprávnění) k systému a jeho jednotlivým subsystémům
|-
| /ppp || konfigurace démona "pppd" - spojení přes PPP protokol (např. připojení do Internetu telef. linkou
Řádek 194:
</pre>
 
; <code>/dev/stdin</code>, <code>/dev/stdout</code> a <code>/dev/stderr</code> : Jsou zařízení standardního vstpuvstupu, výstupu a chybového výstupu. Jsou užitečné u programů, které požadují na příkazové řádce specifikaci(e) vstupníchovstupního a/nebo výstupního souboru a my bychom je potřebovali zařadit spíše jako filtr, tzn. chceme, aby vstup byl ze stdin a/nebo výstup na stdout. Např. program dumb_program, vyžadující na příkazové řádce specifikaci nejprve vstupního a pak výstupního souboru můžeme zařadit jako filtr do roury takto:
 
<pre>
Řádek 214:
Pro potřeby síťové komunikace mezi procesy mají systémy Unix/Linux implementován koncept tzv. "'''[[soket]]ů''' (angl. '''sockets''')
 
'''Pozn. 2:''' Podobně jako rozhraní SCSI (Small Computer Systems Interface - komnikačníkomunikační protokol mezi počítačem a periferními jednotkami; všechna SCSI zařízení "rozumí" stejnému protokolu bez ohledu na typ řadiče na nejž jsou připojena), byly v nových jádrech Linuxu implementovány další třídy zařízení: '''USB''', '''Bluetooth''' /Modrý zub/, '''IEEE 1394''' /FireWire/, '''I2O'''/Intelligent Input/Output/, '''Multimédia''' aj. Tyto skupiny mají shodný komunikační protokol a jeho implementace v jádře zbavuje vývojáře ovladačů příslušných zařízení programovat tuto pro celo třídu společnou vrstvu znovu.
 
'''Pozn. 3:''' Nevýhodou speciálních souborů zařízení v adresáři "<code>/dev</code>" je to, že je "velký" - typicky obsahuje až několik desítek tisíc souborů. Je to proto, že obsahuje (a je jich naprostá většina) soubory i pro zařízení, která v systému (ještě) neexistují - jaksi "do foroty", až se zařízení přidá, už bude jeho soubor zařízení existovat a nemusí se vytvářet např. povelem "mknod". Např. pro pevné disky "<code>hd</code>" jsou připravena zařízení <code>hda-hdt</code>, pro každé 32 oblastí (partition), tj. celkem 16x32=512 speciálních souborů. Pro jiná zařízení je situace obdobná.
Východiskem je [[devFS]] filesystém, implementovaný v jádrech Linux 2.4 : není to již součást normálního FS, ale kód pro nová zařízení je součástí jádra. "<code>/dev</code>" FS je vytvářen v RAM během zaváděcí (boot) fáze systému a odpovídající speciální soborsoubor pro nové zařízení je jádrem automaticky přidán při jeho připojení. (V době psaní tohoto dokumentu ale devFS nebyl součástí žádné velké distribuce).
 
'''Pozn. 4:''' Od jádra verze 2.6.x se začalo místo devFS filesystému používat systému [[Udev]], který umožňuje zařízení dynamicky vytvářet a rušit
Řádek 240:
|}
 
Adresář <code>/sys</code> se dělí na další podadresáře podle kategorie příslušných parametrů (dev, fs, kernel, net, vm aj.) Změnou hodnot v příslušných souborech můžeme měnit nastavení a chování systému. Např.:
<pre>
$ cat /proc/sys/net/ipv4/ip_forward# Je stroj koncový nód (0) nebo router (1) ?
Řádek 264:
'''Pozn2:''' U FS které nemají tyto společné přístupové bity je přístup a/nebo vlastnictví možné emulovat volbami příkazu "mount" v době připojení FS.
 
'''Pozn3:''' Pro přidávání a výmaz souborů mají význam pouze přístupové bity a vlastník adresáře souboru (pokud Unix FS nepodporuje komplexnější schéma, jako např. POSIX ACL (ACL = ACcess List = přístupový seznam)). Tzn. i soubory, které nemají nastaveny nastaveny žádné přístupové bity mohou být smazány, pokud to povolí adresář v němž jsou umístěny. Stejně pokud nadřazený adresář povolí aby podřazené objekty mohly být změněny uživatelem nebo skupinou, pak jakýkoliv potomek může být nahražennahrazen/změněn tímto uživatelem nebo skupinou.
 
=== Význam přístupových bitů ===
Řádek 278:
Adresář který má nastaven tento bit a nemá nastaven r bit nemůže být vypsán, tzn. uživatel musí znát jméno souboru, s nímž chce pracovat.
|-
| SUID (4000) || Je-li nastaven na spustitelném souboru, pak při jeho spušteníspuštění bude efektivní UID procesu nastaveno na UID vlastníka souboru. Na nespustitelném souboru způsobí v Linuxu a Systém V systémech uzamčení souboru při jeho přístupu. || Nemá vliv
|-
| SGID (2000) || Je-li nastaven na spustitelném souboru, pak při jeho spušteníspuštění bude efektivní GID procesu nastaveno na GID vlastníka souboru. Na nespustitelném souboru způsobí v Linuxu a Systém V systémech uzamčení souboru při jeho přístupu. || Pokud je SGID bit nastaven na adresáři, soubory v adresáři vytvořené budou mít jejich GID automaticky nastavené na GID adresáře - tzv. "projekt adresáře". Nestandardizováno, funguje v Linuxu a na Solarisu.
|-
| sticky: t (1000) || Staré Unixy jej nazývaly "Save program text" bit a indikoval, že kód spustitelných souborů má zůstat v oper. paměti po ukončení úlohy. Na Linuxu nemá význam - díky správě VM jej nepotřebuje || Bez ohledu na zápisové práva daného adresáře, smazání a přejmenování souboru v tomto adresáři může provést pouze vlastník souboru, vlastník adresáře nebo ten, kdo má explicitně povolena práva zápisu do souboru. Používané na veřejně zapisovatelné adresáře jako je "<code>/tmp</code>"