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:
Software
Co je to vlastně "uživatel"?
28. února 2002, 00.00 | Jak jsme si slíbili minule, dnes si začneme povídat o snad poslední ze základních věcí, jíž jsme se dosud nezabývali: podíváme se na unixový systém přístupových práv a vlastnictví objektů.
Jak jsme si slíbili minule, dnes si začneme povídat o snad poslední ze základních věcí, jíž jsme se dosud nezabývali: podíváme se na unixový systém přístupových práv a vlastnictví objektů.Uživatelská jména a konta
Na rozdíl od klasického Mac OSu, který sice s různými "uživateli" do jisté míry pracovat uměl, ale šlo jen o jednoduchou iluzi na úrovni uživatelského rozhraní, je Mac OS X plnohodnotný víceuživatelský systém. To znamená, že Mac OS X udržuje základní nastavení pro více různých uživatelů, kteří mohou s počítačem pracovat střídavě (a prostřednictvím počítačové sítě i najednou), aniž by se navzájem nežádoucím způsobem ovlivňovali. Data jednoho uživatele jsou důsledně chráněna před daty jiného: pokud nechceme, aby někdo četl naše soubory, operační systém zajistí, že to skutečně nikdo (vyjma systémového administrátora) nebude moci dělat, bez ohledu na to, jak dobrým "power userem" nebo programátorem je.
Každý uživatel je primárně identifikován tzv. login jménem. To je jednoduché jméno, které uživatel používá když se přihlašuje k systému; typická uživatelská jména mohou být např. "ocada" nebo "ondrejc" pro Ondřeje Čadu, "ocs" pro jeho firmu, "me" pro jediného uživatele systému, který více uživatelů nemá, nebo "guest" pro libovolného uživatele, který nemá vlastní konto, ale přesto smí pracovat se systémem. Mac OS X do jisté míry login jména skrývá (standardní login panel zobrazený po spuštění počítače nám dovoluje používat "dlouhá" jména), ale pro práci v Terminalu je rozhodně potřebujeme.
Uživatelské konto pak je skupina všech údajů a nastavení, jež Mac OS X pro uživatele spravuje. Patří mezi ně samozřejmě login jméno i "dlouhé" uživatelské jméno, a také heslo, jímž uživatel při připojení k systému prokazuje svou identitu. Je zde také složka, ve které má uživatel své vlastní soubory a složky, a která mu patří a je chráněna před ostatními — budeme jí říkat domovská složka. Součástí domovské složky, mimochodem, je také uživatelova vlastní tzv. defaults databáze a v ní standardní nastavení pro všechny aplikace.
Speciálním uživatelem je vždy root — tzv. supervisor, "superuživatel", který, zhruba řečeno, "může vše": může cokoli číst, může cokoli smazat, může měnit údaje uložené v uživatelských kontech... Mac OS X standardně nedovoluje nikomu, aby se k systému přihlásil jako "root"; zřejmě je to míněno jako bezpečnostní opatření. Podle mého osobního názoru to však bezpečnost nijak podstatně nezvýší — použijeme-li samozřejmě rozumné "rootovské" heslo; zato to zkomplikuje administrativu. Jedna z prvních věcí, jež jsem se svým Mac OS X udělal, proto byla povolení loginu pro "roota"; chcete-li to udělat také, naleznete návod ve třetím dílu seriálu NetInfo.
Pro úplnost stojí za to dodat, že každý uživatel je interně v systému representován číslem: root má vždy číslo nula, čísla ostatních uživatelů mohou být libovolná. Až na naprosté výjimky (mezi něž patří např. systém sdílení souborů NFS) nás to však v praxi nemusí zajímat: Mac OS X totiž téměř za všech okolností převádí číslo uživatele na jeho jméno automaticky.
Přihlašování aneb login
Chceme-li mít možnost se k systému přihlásit skutečně jako root, a používat tak v rámci rootovského konta kompletně všechny aplikace, musíme se postarat, aby bylo toto konto v login panelu vůbec přístupné. Znamená to, že v aplikaci System Preferences v panelu Login vybereme "Login Window", a zde zvolíme buď "Display Login Window as: Name and password entry fields", nebo — trváme-li na "List of users with accounts..." — musíme si vyžádat také "Show "Other User" in list...".
My jsme už ale experti na práci v Terminálu, a proto se v naprosté většině případů bez nepříjemného "loginu" obejdeme: úplně stačí se na "roota" přepnout v terminálovém okně, a pak požadovanou aplikaci prostě spustit. Pro přepínání mezi uživateli slouží standardní příkaz su; spustíme-li jej bez argumentu, zeptá se známe-li skutečně "rootovské" heslo, a v kladném případě přepne shell do "rootovského" režimu (přesně řečeno, spustí nový shell v rámci "rootovského" konta, takže jej ukončíme standardní kombinací Ctrl-d):
1 ~> whoami
ocs
2 ~> su
Password:
1 /Users/ocs# whoami
root
2 /Users/ocs# ^D
3 ~> whoami
ocs
4 ~>
Chceme-li třeba editovat některý ze systémových souborů, prostě se "přepneme do roota" a "spustíme na něj TextEdit" — takhle:
4 ~> su
Password:
1 /Users/ocs# /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/fstab.hd &
[1] 364
2 /Users/ocs#
Nový TextEdit se objeví v doku (pokud jsme již měli spuštěný TextEdit jednou v rámci vlastního konta, budou tam tedy dva), a umožní nám editovat cokoli: je tedy třeba opatrnosti!
Pokud bychom chtěli shell přepnout do konta jiného uživatele (jehož login jméno a heslo známe), poslouží nám opět příkaz su: jméno požadovaného uživatele můžeme zadat jako jeho argument.
Mimochodem, naprostou samozřejmostí by měla být možnost v rámci konta kteréhokoli jiného uživatele analogickým způsobem jako v "rootovi" spouštět i GUI aplikace: chce-li si třeba syn přečíst poštu, mělo by být zbytečné se "odlogovávat" — místo toho by stačilo spustit Mail v rámci jeho konta. Přesně tak tomu také odjakživa v NeXTStepu bylo (a k dispozici byla i GUI nadstavba, aby to uživatelé nemuseli dělat v Terminálu). Firma Apple se však bohužel s novým grafickým serverem Quartz soustředila na nesmysly jako stínování nebo genie effect, a skutečně důležité věci prostě nechala stranou: Quartz nedokáže obsloužit najednou více uživatelů, než právě jediného "obyčejného" uživatele a "roota"!
5 ~> su test
Password:
[localhost:/Users/ocs] test% whoami
test
[localhost:/Users/ocs] test% /Applications/TextEdit.app/Contents/MacOS/TextEdit &
[1] 372
[localhost:/Users/ocs] test% kCGErrorFailure : initCGDisplayState: No display interlock
exit
6 ~>
Příště...
Co je to uživatel a uživatelské konto už víme; příště se proto pustíme do mechanismů, které Unix (a tedy Mac OS X) nabízí pro ochranu dat jednoho uživatele před ostatními.
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á
Tématické zařazení:
» Rubriky » Začínáme s