[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pristupova-prava-pomoci-acl [2008/06/27 10:27]
zeman Rekurzivní chmod pouze na adresáře.
pristupova-prava-pomoci-acl [2017/09/30 20:20]
rosa [Give all permissions to all ufal/ufal_ext users]
Line 1: Line 1:
 ====== Přístupová práva k souborům pomocí ACL ====== ====== Přístupová práva k souborům pomocí ACL ======
  
-Míra Janíček píše:+ACL (access control list) je způsob, jak rozšířit přístupová práva. Pro každý soubor/adresář můžeme mít kromě těch klasických tří "skupin" (u, g, o) i seznam dalších uživatelů/skupin s jejich přístupovými právy. Důležité příkazy jsou ''setfacl'' a ''getfacl''. Pěkný tutoriál je tady:
  
-<code>Pekny tutorial (z neho jsem se to naucil) je tady:</code>+https://wiki.archlinux.org/index.php/Access_Control_Lists
  
-http://www.vanemery.com/Linux/ACL/linux-acl.html+V&nbsp;kostce:
  
-<code>ale shrnu to v kostcenic na tom neni ;+Modelová situace: mám soubor "nejaky-soubor" s právy 600tjvlastník (jámůže rw, ostatní nic:
  
-Modelova situace: mam soubor "nejaky-soubor" s pravy 600 (vlastnik=ja +<code bash>$ ls -l nejaky-soubor  
-muze rw, ostatni nic):+-rw------- 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</code>
  
-$ ls -l nejaky-soubor  +Teď chci povolit jednomu dalšímu uživateli (ale ne celé skupině ''ufal_ext'') čtení toho souboru, to udělám pomocí ''setfacl'':
--rw------- 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor+
  
-Ted chci povolit treba tobe cteni toho souboru, to udelam pomoci +<code bash>setfacl -m u:zeman:r nejaky-soubor</code>
-setfacl:+
  
-$ setfacl -m u:zeman:r nejaky-soubor+Přepínač "-m" znamená "modify", v tomhle případě přidání další položky, je to uživatel (to je to "u:"zeman a jeho práva. Když pak pustím na ten soubor ls -l, tak těsně za těmi devíti políčky, před počtem linků, sedí "+". Tím dává ls na vědomí, že ten soubor má nějaký ACL a že to je tedy s právy komplikovanější.
  
-Prepinac "-m" znamena "modify", v tomhle pripade pridani dalsi polozky, +<code bash>$ ls -l nejaky-soubor 
-je to uzivatel (to je to "u:") zeman, a jeho prava.+-rw-r-----+ 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</code>
  
-Vsimni si, ze kdyz pak pustis na ten soubor ls -l, tak tesne za temi +Pro lepší výpis práv musíme použít ''getfacl'':
-deviti policky, pred poctem linku, sedi "+" -- tim ti dava ls na vedomi, +
-ze ten soubor ma nejaky ACL a ze to je tedy s pravy komplikovanejsi.+
  
-$ ls -l nejaky-soubor +<code bash>$ getfacl nejaky-soubor 
--rw-r-----+ 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor +
- +
-Pro lepsi vypis musime pouzit getfacl: +
- +
-$ getfacl nejaky-soubor +
 # file: nejaky-soubor # file: nejaky-soubor
 # owner: janicek # owner: janicek
Line 40: Line 31:
 group::--- group::---
 mask::r-- mask::r--
-other::---+other::---</code>
  
-Ctvrty radek ("mask"rikajaka nejlepsi prava muze kdokoliv v ACL (cili +Čtvrtý řádek ("mask"říkájaká nejlepší práva může kdokoliv v ACL (čili vyjma tradičních u, g, o) dostat, a ls -l pak ve výpisu uvádí právě tenhle údaj místo práv pro skupinu.
-vyjma tradicnich u, g, o) dostat, a ls -l pak ve vypisu uvadi prave tenhle +
-udaj misto prav pro skupinu souboru.+
  
-Cili kdybych chtel povolit skupine ufal_ext pristup r-x k adresari "en" +Čili kdybych chtěl povolit skupině ufal_ext přístup r-x k adresáři "en" v /net/data/conll/2007, tak by mělo stačit dát
-v /export/data/conll/2007, tak by melo stacit dat+
  
-$ setfacl -m g:ufal_ext:rx /export/data/conll/2007/en+<code bash>$ setfacl -m g:ufal_ext:rx /net/data/conll/2007/en</code>
  
-pripadne totez vevnitr, jestli je to tam podobne. +případně totéž vevnitř, jestli je to tam podobné.
-</code>+
  
 ===== Jak přidat rekurzivně právo "x" adresářům, ale ne souborům? ===== ===== Jak přidat rekurzivně právo "x" adresářům, ale ne souborům? =====
  
 <code bash>find -type d -exec chmod o+rx {} \;</code> <code bash>find -type d -exec chmod o+rx {} \;</code>
 +
 +Pokud bych chtěl přidat právo "x" na adresáře a právo "r" na adresáře i soubory skupině ufal_ext pomocí ACL:
 +
 +<code bash>find -type d -exec setfacl -m g:ufal_ext:rx {} \;
 +setfacl -R g:ufal_ext:r *</code>
 +
 +===== Jak odebrat rekurzivně právo zápisu pro kohokoli? =====
 +
 +Revoking write access from all groups and all named users (using the effective rights mask):
 +
 +<code bash>setfacl -R -m m::rx .</code>
 +
 +===== Give all permissions to all ufal/ufal_ext users =====
 +
 +This is the preferred way of giving all rights to "everyone". It is more secure than simple "chmod a+rwx", which also includes e.g. the "www-data" group (i.e. access from the web).
 +
 +<code bash>setfacl -m g:ufal:rwx,g:ufal_ext:rwx FILE</code>
  

[ Back to the navigation ] [ Back to the content ]