Co je to vlastně "uživatel"? - 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

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

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Začínáme s  

 » Rubriky  » Software  

 

 

 

 

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

Uživatelské jméno:

Heslo: