Vlastnictví objektů - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

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:

Seriály

Více seriálů



Software

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):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: