Iphone a přístupová práva k souborům
V našem fóru se množí dotazy týkající se problémů s přístupovými právy k souborům a adresářům. Typicky se tento problém objevuje při nefunkční aplikaci, kterou si uživatel buď pomocí Installeru, nebo hlavně pomocí souborového manažeru přidá do svého iPhone.
Pro zkušenější uživatele nebude článek asi moc přínosný, ale nováčkům možná pomůže pochopit, čeho se přístupová práva v souborovém systému týkají a k čemu jsou vlastně užitečná.
Předem opět raději hned na začátku připomenu, že veškeré úpravy svého telefonu provádíte čistě na svoje vlastní riziko, tento článek opět slouží jen a pouze pro studijní účely :]. Ani autor, ani kdokoliv z našeho serveru neneseme odpovědnost za případné problémy. Uvědomte si, že provádíte jednoznačně neautorizovaný zásah do telefonu a jakákoliv garance úspěchu zde opravdu není, ze strany Apple už vůbec ne..
Teorie
Nejprve začneme trochou teorie, ale nebojte se, jen velmi obecně, s podrobnostmi vás zatěžovat nebudu. Hlavně také proto, že přístupová práva není nutné v iPhone ‚propracovaně‘ nastavovat, práva k souborům jsou mnohem důležitější pro ‚síťový provoz‘, což se iPhone týká většinou jen velmi okrajově.
Každý soubor (adresář) má v iPhone (a obecně v Mac OS / *nix systémech) mnoho atributů (vlastností). Jednou z nich jsou i přístupová práva. Ta se skládají ze tří oprávnění. Jsou to práva vlastníka souboru, skupiny do které patří a všech ostatních. Vlastník je pochopitelný, je to většinou ten, kdo soubor ‚vytvořil‘. Skupina slouží hlavně pro práci v síťovém prostředí, ke sdílení. A ostatní oprávnění určuje přístup k souboru pro všechny ostatní uživatele a přístupy.
Takže obecně, každé přístupové právo je dáno trojicí parametrů, označovaných jak písmeny, tak velmi geniálně pomocí jednoho čísla. Parametry jsou R,W,X, znamenají čtení (Read), zápis (Write) a právo spouštění (eXecute). Kombinací těchto parametrů se dá nastavit například právo spuštění (používaní) souboru, i když je třeba právo čtení nebo zápisu zakázané. Naopak třeba zakázané právo zápisu ještě neznamená to, že soubor nejde smazat ap. U adresáře to je trochu složitější, ale pro zjednodušení se dá říci, že adresář je jen určitý druh souboru a podle toho s ním i pracovat.
Z mého pohledu je geniální označení celé trojice (r,w,x) jedním (oktanovým) číslem. Právo číst má hodnotu 4, právo zápisu 2 a právo pro spuštění 1. Celkové se daná trojice prostě sečte a podle toho se dá přesně určit celá trojice, jakákoliv kombinace má vždy jedinečný součet.
A pak už je velmi jednoduché určit celkové právo k souboru podle trojice čísel, označuje právo jak vlastníka, tak i skupiny a ostatních. Pro příklad, zápis 754 bude znamenat rwx pro vlastníka, r-x pro skupinu a r-- pro ostatní (zápis rwx-wxr--, 754, pomlčky označují ‚nulu‘, chybějící právo).
Pro prostředí iPhone je situace jednoduchá, aplikacím se nastavuje co ‚nejbenevolentnější‘ oprávnění, zabezpečení není ve většině případů nutné. Takže nejlépe 0777, což je z hlediska bezpečnosti přímo hrozivé, ale to nás opravdu v případě iPhone nemusí většinou moc trápit.
Praktické použití
Pro nastavování přístupových práv je možné i v případě iPhone využít mnoho cest. Pro ortodoxní geeky nebude připadat v úvahu jakékoliv jiné řešení než terminal přímo v iPhone a práce s příkazem chmod :], většina z nás ale tak .. masochistická :] nebude a použije raději pohodlnější a přehlednější nástroj pro přístup k souborovému systému, například WinSCP (i když jsou případy, kdy jiná cesta než pomocí terminalu není, uznávám). Jak program WinSCP získat, nainstalovat a používat jej je popsáno v tomto článku, nebudu to zde už znovu popisovat.
Představme si tedy situaci, kdy chceme používat aplikaci, která nepracuje tak, jak by měla. Typickým projevem špatných přístupových práv je situace, kdy se po pokusu o spuštění aplikace nespustí, jen problikne černá obrazovka a následuje návrat do hlavní obrazovky s ikonkami (springboadu). Uživatel se zeptá ve fóru (či vzácně použije hledání a zjistí, že stejný problém se už několikrát řešil :]..) a ostatní mu poradí, aby si změnil přístupová práva (oprávnění).
Řešení je jednoduché. Stačí se například pomocí WinSCP přihlásit k iPhone, najít adresář s aplikací a nastavit všem souborům a podložkám v něm ‚správná‘ práva. Aplikace se nacházejí v iPhone na různých místech, ať už podle verze firmware, nebo díky přesunu na disk s větším úložným prostorem, ale obecně stačí v kořenovém adresáři zvolit složku /Applications a příslušný odkaz (symlink) nás už správně nasměruje ke složce s aplikacemi.
Zde už stačí najít složku s aplikací, které chceme změnit přístupová práva (většinou je adresář pojmenovaný stejně jako aplikace, s příponou .app), adresář kliknutím označit, stisknout pravé tlačítko myši a z nabídky zvolit poslední položku, Vlastnosti (F9).
V okně, které se objeví, pak už stačí nastavit potřebná práva, doporučuji 0777, tj. ‚plná práva pro všechny‘ :]. Důležité je také zaškrtnutí spodního políčka, které zajistí tzv. rekurzivní nastavení práv i pro soubory a podadresáře, jinak by se nastavila práva jen pro adresář aplikace.
Závěr
A to je vše. Jak vidíte, nastavení práv k souborům není nic složitého. Samozřejmě v případě iPhone používáme velké zjednodušení, složitější nastavování není většinou zapotřebí.