Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Agregator
Vlastnictví objektů
7. března 2002, 00.00 | V minulém dílu našeho seriálu jsme si ukázali, co to je uživatel a uživatelské konto; víme kdo je "root", a umíme také mezi různými uživateli přepínat v Terminálu. Dokážeme také podle potřeby spouštět aplikace v rámci "rootovského" konta.
V minulém dílu našeho seriálu jsme si ukázali, co to je uživatel a uživatelské konto; víme kdo je "root", a umíme také mezi různými uživateli přepínat v Terminálu. Dokážeme podle potřeby spouštět aplikace v rámci "rootovského" konta (a uměli bychom to i v rámci konta kteréhokoli jiného uživatele, kdyby firma Apple nezprasila grafický server).
Pro jednoznačnost se vyplatí zdůraznit, že pokud jsme aplikaci (nebo obecně jakýkoli program) spustili v rámci některého uživatelského konta, systém tuto informaci samozřejmě zná, a kdykoli se takový program o něco pokusí — řekněme číst soubor — systém nejprve ověří, zda uživatel, který jej spustil, na to má právo.
Vlastnictví souborů a složek
Cokoli co je v systému souborů a složek má jednoznačného majitele. Samozřejmě, jsou to především soubory a složky samy; v unixovém systému však prostřednictvím systému souborů přistupujeme k řadě dalších věcí: disky samy (jako zařízení) existují v rámci systému souborů; libovolné zařízení má jméno v systému souborů. Dokonce i taková věc jako operační paměť, využívaná jádrem systému je representována položkou v systému souborů ("/dev/kmem"). My se v následujícím výkladu soustředíme na složky a soubory; je ale dobře si zapamatovat, že stejný systém ochrany a přístupových práv může sloužit téměř pro cokoli.
Každý objekt v systému souborů obsahuje číslo, jež identifikuje jeho vlastníka; zobrazíme-li soubory a složky pomocí příkazu "ls -l", převede nám systém automaticky tato čísla na odpovídající login jména — na výpisu je vidíme ve třetím sloupci:
8 /tmp> ls -l
total 0
drwxr-xr-x 2 ocs wheel 264 Feb 7 17:15 ocs/
srwxrw-rw- 1 root wheel 0 Feb 7 17:15 slp_ipc=
9 /tmp> su test
Password:
[localhost:/tmp] test% echo "Hohoho" > soubor\ usera\ \"test\"
[localhost:/tmp] test% exit
10 /tmp> ls -l
total 8
drwxr-xr-x 2 ocs wheel 264 Feb 7 17:15 ocs/
srwxrw-rw- 1 root wheel 0 Feb 7 17:15 slp_ipc=
-rw-r--r-- 1 test wheel 7 Feb 7 18:11 soubor usera "test"
11 /tmp>
Samozřejmě, že stejně dobře se můžeme podívat na vlastnictví "nesouborových" objektů; uvidíme, že prakticky všechny patří "rootovi". Tak je to správné: běžní uživatelé (tj. programy, jež běží v rámci jejich kont) nemají k žádnému zařízení přímý přístup; chtějí-li s ním pracovat, použijí standardní knihovní služby, a ty si pak odpovídající činnost vyžádají od systémového driveru (který samozřejmě běží v rámci "rootovského" konta). Pro zajímavost si ukažme vlastníka několika disků a oné výše zmíněné operační paměti jádra:
16 /tmp> ls -l /dev/disk0s[1-3] /dev/kmem
br--r----- 1 root operator 14, 3 Feb 7 17:13 /dev/disk0s1
brw-r----- 1 root operator 14, 4 Feb 7 17:13 /dev/disk0s2
brw-r----- 1 root operator 14, 5 Feb 7 17:13 /dev/disk0s3
crw-r----- 1 root kmem 3, 1 Feb 7 17:13 /dev/kmem
17 /tmp>
(Povšimněte si písmenek 'b' nebo 'c' na začátku — ty nás informují, že nejde ani o soubor, ani o složku, ani o link.)
Změna vlastnictví
Chceme-li změnit vlastníka některého objektu, máme k dispozici příkaz chown (CHange OWNer). Chceme-li jej použít, musíme se nejprve přepnout do "rootovského" konta: příkaz chown jinak nelze používat kvůli bezpečnosti (samozřejmě, že nemůžeme měnit vlastníka "cizích" objektů; a jaký smysl by mělo vzdávat se vlastnictví vlastních?)
V nejjednodušším případě jsou jeho argumenty prosté: požadované jméno uživatele, a objekt (nebo seznam objektů), jejichž vlastník se má změnit:
30 /tmp> su
Password:
1 /tmp# chown ocs soubor\ usera\ \"test\"
2 /tmp# echo "Tohle psal root" > soubor\ korena
3 /tmp# chown ocs soubor\ korena
4 /tmp#
31 /tmp> ls -l
total 16
drwxr-xr-x 2 ocs wheel 24 Feb 7 17:15 ocs/
srwxrw-rw- 1 root wheel 0 Feb 7 17:15 slp_ipc=
-rw-r--r-- 1 ocs wheel 16 Feb 7 18:28 soubor korena
-rw-r--r-- 1 ocs wheel 7 Feb 7 18:11 soubor usera "test"
32 /tmp>
Chceme-li změnit zároveň vlastníka všech souborů v některé složce a všech jejích podřízených složkách, můžeme použít argument -R ("rekursivně"). Používáme-li často linky, máme k dispozici také argument -h, který zajistí, že se změní vlastník zadaného linku a ne vlastník objektu, na který se link odkazuje. (S aliasy to samozřejmě nefunguje — s nimi nefunguje nic krom Carbonu.)
Příště...
...se konečně dostaneme k hlavní věci, kvůli níž celý systém vlastnictví existuje: k přístupovým právům, vymezujícím možnosti jednotlivých uživatelů (a programů jimi spuštěných) pracovat s odpovídajícími objekty.
Obsah seriálu (více o seriálu):
- Obcování s ďáblem
- Obcování s ďáblem 2 - základy
- Obcování s ďáblem 3 - Práce se soubory
- Obcování s ďáblem 4 - Další práce se soubory
- Obcování s ďáblem 5 - Stále soubory, hlavně linky
- Obcování s ďáblem 6: Pár zbývajících drobností
- Obcování s ďáblem 7: Samá voda, přihořívá, hoří!
- Obcování s ďáblem 8: Jak se do shellu volá, tak se program ozývá
- Obcování s ďáblem 9: Nové finty na programy
- Obcování s ďáblem 10: Do fronty, pánové, do fronty!
- Obcování s ďáblem 11: Standardní vstup a výstup
- Obcování s ďáblem 13: Další triky
- Obcování s ďáblem 14: Vyšší škola hledání souborů
- Obcování s ďáblem 15: Příkaz find stokrát jinak
- Obcování s ďáblem 16: Co se ještě dá uvařit z příkazu find
- Obcování s ďáblem 17: Regulární výrazy
- Obcování s ďáblem 18: Speciální regulární výrazy
- Obcování s ďáblem 19: Skládání regulárních výrazů
- Obcování s ďáblem 20: Regulární výrazy se zpětnými odkazy
- Obcování s ďáblem 21:K čemu je dobrý grep...
- Zázraky ihned, nemožné na počkání: sed
- Obcování s ďáblem - další finty s příkazem sed
- Rozsáhlejší příklad se sedem
- Obcování s ďáblem: Další kouzla, aneb awk
- Awk a proměnné
- Obcování s ďáblem 27: Awk a výrazy
- Obcování s ďáblem: Awk a funkce
- Awk a příkazy
- Co je to vlastně "uživatel"?
- Vlastnictví objektů
- Přístupová práva
- Vlastník, skupina, ostatní...
- Jak je to se skupinami?
- Skupiny a uživatelé
- Scripty
- Komentáře, a volba shellu
- Pro skript může být shell cokoli!
- Shellové skripty a argumenty
- Skripty a proměnné: aritmetika
- Proměnné shellu, "dědění" hodnot
- Práce s proměnnými
- Práce se jmény souborů
- Pole hodnot
- Další triky kolem polí...
- Standardní proměnné shellu
- Základní příkazy pro skripty
- Příkaz if
- Speciální podmínkové příkazy
- Podmínky pro práci se soubory
- Jednoduchý cyklus
- Příkaz for a pomocné příkazy break a continue
- Příkaz case
- Příkazy exit a select
- Rejstřík a přehled
- Procesy
- Informace o procesech
- Další klíčová slova pro příkaz ps
- Příkaz ps: několik praktických přepínačů
- A k čemu že je "ps" dobré?
- Copak procesor, s pamětí je to horší
- Virtuální paměť
- A ještě jednou virtuální paměť
- Zpět k příkazu ps
- Skutečný žrout paměti
- Ještě jednou top
- Doplněk k topu: vm_stat
- Co to tedy všechno znamená?
- Nevychází nám dal a má dáti?
- Kam se stránky ukládají?
- Změna odkládacího disku
- Změna odkládacího disku / fstab
- Poslední poznámka k fstab
- A jak to je se soubory?
- Co vlastně příkaz lsof vypisuje?
- Příkaz lsof a obsah sloupce NAME
- SIPS - Terminál není jen pro nadšence UNIXu
- Tak nám zabili NetInfo, paní Müllerová