[ 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
Last revision Both sides next 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:10]
rosa [Jak odebrat rekurzivně právo zápisu pro kohokoli?] a+rwx
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 FILE
 +setfacl -m g:ufal_ext:rwx FILE</code>
  

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