abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:55 | IT novinky

    Čínská společnost Tencent uvolnila svůj AI model HunyuanWorld-Voyager pro generování videí 3D světů z jednoho obrázku a určené trajektorie kamery. Licence ale nedovoluje jeho používání na území Evropské unie, Spojeného království a Jižní Koreje.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Komunita

    Blender Studio se spojilo s kapelou OK Go a výsledkem je videoklip k písni Impulse Purchase. Stejně jako samotný 3D software Blender je i ve videoklipu použitý animovaný chlápek open source. Kdokoli si jej může stáhnout a upravovat.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Komunita

    Zig Software Foundation stojící za programovacím jazykem Zig publikovala finanční zprávu za rok 2024. Současně s prosbou o finanční příspěvek.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Nová verze

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za srpen (YouTube). Vypíchnuta je podpora Tabulek Google, implementace Gamepad API a Cookie Store API nebo také podpora WebGL na Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Komunita

    openSUSE Leap 16, včetně Leap Micra 6.2+, nově nabízí 24 měsíců podpory pro každé vydání. To je dva roky aktualizací a stability, což z něj činí nejdéle podporovanou komunitní distribuci vůbec. Leap se tak stává ideální platformou pro všechny, kdo hledají moderní, stabilní a dlouhodobě podporovanou komunitní Linux distribuci.

    lkocman | Komentářů: 0
    včera 16:33 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal dne 3. 9. 2025 VAROVÁNÍ před hrozbou v oblasti kybernetické bezpečnosti spočívající v předávání systémových a uživatelských dat do Čínské lidové republiky a ve vzdálené správě technických aktiv vykonávané z území Čínské lidové republiky. Varováním se musí zabývat povinné osoby podle zákona o kybernetické bezpečnosti.

    Ladislav Hagara | Komentářů: 27
    včera 11:55 | IT novinky

    Americká internetová společnost Google nemusí prodat svůj prohlížeč Chrome ani operační systém Android. Rozhodl o tom soud ve Washingtonu, který tak zamítl požadavek amerického ministerstva spravedlnosti. Soud ale firmě nařídil sdílet data s jinými podniky v zájmu posílení konkurence v oblasti internetového vyhledávání. Zároveň Googlu zakázal uzavírat dohody s výrobci mobilních a dalších zařízení, které by znemožňovaly

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 11:33 | Humor

    Prvního září ozbrojení policisté zatkli na na londýnském letišti Heathrow scénáristu a režiséra Grahama Linehana, známého především komediálními seriály Ajťáci, Otec Ted nebo Black Books. Během výslechu měl 57letý Graham nebezpečně zvýšený krevní tlak až na samou hranici mrtvice a proto byl z policejní stanice převezen do nemocnice. Důvodem zatčení bylo údajné podněcování násilí v jeho 'vtipných' příspěvcích na sociální síti

    … více »
    Gréta | Komentářů: 97
    včera 10:22 | Pozvánky

    Studentská dílna Macgyver zve na další Virtuální Bastlírnu - pravidelné online setkání všech, kdo mají blízko k bastlení, elektronice, IT, vědě a technice. Letní prázdniny jsou za námi a je čas probrat novinky, které se přes srpen nahromadily. Tentokrát jich je více než 50! Těšit se můžete mimo jiné na:

    Hardware – Bus Pirate na ESP32, reverse engineering Raspberry Pi, pseudo-ZX-80 na RISC-V, PicoCalc, organizéry na nářadí z pěny nebo … více »
    bkralik | Komentářů: 0
    včera 03:11 | Nová verze

    Google Chrome 140 byl prohlášen za stabilní. Nejnovější stabilní verze 140.0.7339.80 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 6 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (82%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 141 hlasů
     Komentářů: 11, poslední dnes 16:12
    Rozcestník

    OpenAFS – oprávnění, skupiny a cache manager

    11. 10. 2011 | Michal Švamberg | Návody | 2385×

    Jedním z faktorů, na které se při výběru souborového systému hledí, jsou možnosti nastavení přístupů uživatelům. V tomto ohledu je AFS velmi propracované. Jaké práva nám AFS nabízí, jak se používají access control listy (ACL) a jak jednotlivé komponenty AFS mezi sebou komunikují, je náplní tohoto dílu.

    Obsah

    Práva

    link

    AFS používá vlastní uživatele, vlastní skupiny i vlastní oprávnění. Oprávnění jsou odlišná od unixových a vůbec na ně nebere ohled. AFS sice tyto práva ukládá, ale neřídí se jimi. Totéž platí o vlastnících a skupinách. Potíže mohou nastat v případě, kdy používáte další vrstvu, kterou by klasická práva mohly vyvést z míry (například vzdálený přístup přes FUSE k AFS).

    K dispozici máme tyto oprávnění, které se aplikují vždy na adresář:

    READ (r)
    zpřístupní obsah souborů v adresáři,

    LOOKUP (l)
    umožňuje zobrazení názvů souborů a adresářů (ls), prohlédnutí seznamu práv (fs listacl). Dále přístup do podadresářů (cd), pokud uvnitř podadresáře máme opět toto oprávnění,

    INSERT (i)
    dovolí vytvářet nové soubory a podadresáře včetně vložení kopírováním nebo přesunem,

    DELETE (d)
    dovoluje odstranit soubory nebo adresáře,

    WRITE (w)
    umožní dělat změny obsahu souborů a unixových oprávnění příkazem chmod,

    LOCK (k)
    povoluje programům zamykání souborů přes flock v adresáři,

    ADMINISTER (a)
    dovolí úpravu ACL daného adresáře. Toto právo běžně uživatelé nedostávají vyjma svých domovských adresářů.

    Abychom měli snazší život, ty nejpoužívanější kombinace mají své zkratky:

    write (rlidwk)
    nastaví všechna práva mimo práva ADMINISTER (změna ACL),

    read (rl)
    umožňuje prohlížení, čtení souborů a pohyb v  adresářové struktuře,

    all (rlidwka)
    nastaví všechna oprávnění,

    none ()
    používá se pro odebrání práv, při jeho použití se odstraní položka z ACL.

    Uživatelé

    link

    V systému máme zatím dva uživatele, anonymous je systémový uživatel a musíme ho strpět, druhého uživatele afsadmin jsme si vytvořili při instalaci a obdobně bychom museli vytvořit dalšího (bude v příštích dílech). Seznam uživatelů získáme z protection serveru:

    ~$ pts listentries -users
    Name                          ID  Owner Creator
    anonymous                  32766   -204    -204 
    afsadmin                       1   -204    -204 
    

    Ve jménech uživatelů je zakázáno používat dvojtečku (:) a zavináč (@). Tečka (.) je povolená, ale používá se pro oddělení jména uživatele a jeho instance, protože jeden uživatel může vlastnit více účtů, například mat a mat.admin. A samozřejmě je doporučeno vyhnout se všem ostatním ne alfanumerickým znakům (dolar, mřížka, lomítko, ...). AFS podporuje až 64 znaků dlouhé uživatelské jméno, ale obecně se doporučuje do délky 8 znaků, stále totiž existují programy, které by nemusely s delším jménem spolupracovat.

    Mezi uživatele se řadí také IPv4 adresy nebo adresy celých podsítí. Klient, který pak přistupuje z takové adresy, nemusí mít vytvořený token, ale pro jeho prokázání postačí jeho IP adresa. To je výhodné použít například u web serverů, které tak snadno získají přístup ke stránkám, ke kterým mají jinak přístup pouze jejich vlastníci. Nemá smysl definovat uživatele s globální IP adresou 0.0.0.0, protože takového již máme ve formě skupiny system:anyuser. IP adresy mají ještě jedno omezení, v ACL je smíte použít pouze uvnitř skupiny, pokud je použijete přímo, pravidlo se sice vytvoří, ale nebude fungovat.

    Skupiny

    link

    Předkonfigurovaných skupin je hned několik:

    ~$ pts listentries -groups
    Name                          ID  Owner Creator
    system:administrators       -204   -204    -204 
    system:backup               -205   -204    -204 
    system:anyuser              -101   -204    -204 
    system:authuser             -102   -204    -204 
    system:ptsviewers           -203   -204    -204 
    

    Identifikátor (ID) je záporný pro skupiny, kdežto uživatelé jej mají vždy kladný. Ten, kdo je ve skupině system:administrators, se tváří pro AFS obdobně jako superuživatel na stanici. Jeho velkou výhodou je, že při změnách ACL se nekontroluje právo ADMINISTER. A tak pokud někam nemáte přístup, stačí si jej přidělit. Další výhody jsou v provádění systémových změn v AFS (práce s volumy, s uživateli, nastavení zálohování, přístup k logům, ...). To, že jsme mohli zatím provádět všechny operace, bylo díky přiřazení uživatele afsadmin do skupiny system:administrators.

    ~$ pts membership system:administrators
    Members of system:administrators (id: -204) are:
      afsadmin
    

    Do skupiny system:anyuser automaticky patří každý, kdo se „netrefí“ do našeho nastavení. Může to být klient z cizí buňky nebo klient bez tokenu (nebo s vypršeným tokenem). Jde o obdobu other u unixových oprávnění. Do této skupiny se uživatelé ručně nepřidávají.

    Skupina system:authuser se automaticky použije pro každého, kdo se dokázal ověřit pro naši AFS buňku. Můžeme tedy snadno odfiltrovat cizí od vlastních uživatelů, což se hodí například pro přístup k softwaru. Takový uživatel musí mít platný token. Ani do této skupiny se uživatele ručně nepřidávají.

    Nastavujeme ACL

    link

    V každém adresáři je pouze omezený počet záznamů pro ACL (přibližně 20), avšak počet uživatelů ve skupině není omezen. Pro nastavení čtení všem uživatelům naší buňky provedeme příkazem fs setacl:

    ~$ cd /afs
    
    /afs$ fs listacl .
    Access list for . is
    Normal rights:
      system:administrators rlidwka
    
    /afs$ fs setacl . system:anyuser read
    
    /afs$ fs listacl .
    Access list for . is
    Normal rights:
      system:administrators rlidwka
      system:anyuser rl
    

    Pokud chcete vyzkoušet, že tomu opravdu tak je, stačí zničit token, na což se používá příkaz unlog:

    /afs$ mkdir /afs/foo.bar/test
    
    /afs$ find .
    .
    ./foo.bar
    ./foo.bar/test
    
    /afs$ unlog
    
    /afs$ find .
    .
    ./foo.bar
    find: `./foo.bar': Permission denied
    

    Chyba je způsobena tím, že jsme oprávnění nastavili pouze v adresáři /afs, ale nikoliv v adresáři /afs/foo.bar, proto to opravíme a vytvoříme adresář test2, napřed si ale znovu vytvoříme token z  platného lístku Kerberos:

    /afs$ aklog
    
    /afs$ fs setacl foo.bar system:anyuser read
    
    /afs$ mkdir /afs/foo.bar/test2
    
    /afs$ unlog
    
    /afs$ find .
    .
    ./foo.bar
    ./foo.bar/test
    find: `./foo.bar/test': Permission denied
    ./foo.bar/test2
    

    Tentokrát se find dostal do adresáře test2, protože zdědil ACL nastavení podle nadřazeného adresáře. Ovšem adresář test vznikl ještě před nastavením oprávnění pro system:anyuser a tak jej nemohl zdědit. V takových případech se s oblibou používá find:

    /afs$ aklog
    
    /afs$ find . -noleaf -type d -exec fs setacl {} system:anyuser read \;
    
    /afs$ unlog
    
    /afs$ find . 
    .
    ./foo.bar
    ./foo.bar/test
    ./foo.bar/test2
    

    Parametrem -noleaf u findu vypneme optimalizaci, která u AFS nemusí fungovat správně, vizte man find. Na závěr se sluší, abychom po sobě uklidili:

    /afs$ aklog
    
    /afs$ rmdir /afs/foo.bar/test /afs/foo.bar/test2
    

    Komunikace v AFS

    link

    Na obrázku je znázorněná komunikace mezi jednotlivými komponentami AFS, pokud se pokusíme dostat do adresáře /afs/foo.bar/common/. Operační systém se postupně bude prokousávat jednotlivými adresáři. Napřed se pokusí zalogovat do adresáře /afs. Požadavek předá AFS klientovi a ten se (v případě naší konfigurace) pokusí najít kořenový volume root.afs v domovské buňce. Ale zná pouze adresy databázových serverů, proto (krok 1 na obrázku) položí dotaz do databáze VLDB, aby zjistil, na jakých souborových serverech je dostupný volume root.afs. Vlserver odpoví seznamem serverů a jeho partitionů (spodní část výpisu u příkazu vos examine).

    Cache manager klienta se podívá na seznam preferencí (fs getserverprefs), který si průběžně buduje na základě vzdálenosti adres a konektivity. Ten porovná se seznamem volumů a vybere to nejlepší umístění. V našem případě to je file server napravo. Na něj se obrátí s požadavkem o potřebná data volumu (2).

    File server přečte ACL ve volumu a zeptá se ptserveru (3), zda daný uživatel má na to oprávnění, file server totiž nezná obsah skupin. Pokud dostane kladnou odpověď, pošle (4) klientovi informaci o volumu a povolí mu vstup do adresáře. Cache manager předá informaci operačnímu systému a ten se zkusí zalogovat do adresáře foo.bar (mount point je součástí volumu root.afs). A celý cyklus se opakuje, klient se zeptá VLDB (5), obrátí se na nejvýhodnější souborový server (6) a ten si ověří práva u ptserveru (7). V případě úspěchu dostane klient data (8) a operační systém se může pokusit dostat do dalšího adresáře stejným postupem.

    Z popisu komunikace vyplývá jeden bezpečnostní problém – data, která má cache manager odložená na disku ve /var/cache/openafs, nejsou nijak chráněna proti přístupu superuživatele, protože jsou uložena na běžném souborovém systému. Ztížit přístup k těmto datům můžete zapnutím cachování do paměti v /etc/openafs/afs.conf.

    Vrátíme se ještě k preferencím AFS klienta, ten je používá na to, aby našel nejlépe umístěný file nebo volume location server. Detaily se nebudeme zabývat, a tak čím nižší číslo, tím lepší. Pokud má cache manager na výběr z více serverů, podívá se do seznamu a vybere ten s nejnižší hodnotou, pokud se mu jej nepodaří kontaktovat, vybere server s druhou nejnižší hodnotou a tak dále. Jakmile si hodnotu jednou cache manager nastaví, už ji nemění, ale při novém startu si tabulku vybuduje znovu. Je možné ji přenastavit příkazem fs setserverprefs, ideálně dát do skriptu po nastartování AFS klienta. Na výpisu vaší buňky můžete nalézt něco podobného:

    ~$ $ fs getserverprefs -numeric
    10.10.10.1                                          5008
    192.168.1.101                                       5011
    

    Cache manager umí uložit až 15 rozhraní pro každý server, zde je vidět virtuální rozhraní eth0:10 a rozhraní eth0 nakonfigurované od DHCP.

    Závěr

    link

    Správa skupin a jejich oprávnění je velmi silná stránka AFS, bohužel na ni nejsou uživatelé příliš zvyklí a občas nechápou, že to, co si nastaví svými oblíbenými příkazy, nějak nezabírá. V článku byly použity některá zjednodušení v rámci kompromisu za zachování srozumitelnosti. Také jsme zatím vynechali propojení uživatelských účtů na Kerberos, o tomto tématu bude samostatný díl.

    Všem výše uvedeným věcem (včetně předchozích dílů) se budeme věnovat prakticky hned příště, kde se pokusím zušlechtit naši AFS buňku.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

    Vložit další komentář

    11.10.2011 13:29 Pavel Semerád
    Rozbalit Rozbalit vše Re: OpenAFS – oprávnění, skupiny a cache manager
    Není pravda, že se vůbec nebere ohled na unixová oprávnění. Když seberete souboru unixové právo zápisu, je potom readonly. Stejně to funguje s právem execute. Pokud si dobře pamatuji, tak se testují pouze unixová práva uživatele (group a other se ignorují).
    11.10.2011 20:45 List | skóre: 27
    Rozbalit Rozbalit vše Re: OpenAFS – oprávnění, skupiny a cache manager
    V celkovém kontextu máte samozřejmě pravdu, protože unixové stroje se na tato opravnění podívají a zkontrolují (pravděpodobně je součástí VFS). Ale toto neprovádí AFS klient, z jeho pohledu pouze uchovává možnost tato práva uchovat. Pravdu máme tedy oba, chyba je v nevhodné formulaci této vlastnosti.
    ISSN 1214-1267   www.czech-server.cz
    Redakce | Inzerce | Podmínky použití | Osobní údaje
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.