[ 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:29]
zeman Ještě úvodní odstavec.
pristupova-prava-pomoci-acl [2017/09/30 20:20] (current)
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>​ACL (access control list) je zpusob, jak rozsirit pristupova prava -- pro +https://wiki.archlinux.org/​index.php/​Access_Control_Lists
-kazdy soubor/adresar muzes mit krome tech klasickych tri "​skupin"​ (u, g, +
-o) i seznam dalsich uzivatelu/skupin s jejich pristupovymi pravyDulezite +
-prikazy jsou setfacl a getfacl.+
  
-Pekny tutorial (z neho jsem se to naucil) je tady:</​code>​+V&​nbsp;​kostce:
  
-http://​www.vanemery.com/​Linux/​ACL/​linux-acl.html+Modelová situacemám soubor "​nejaky-soubor"​ s právy 600, tjvlastník (já) může rw, ostatní nic:
  
-<​code>​ale shrnu to v kostce, nic na tom neni.  ;) +<code bash>$ ls -l nejaky-soubor  
 +-rw------- 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</​code>
  
-Modelova situace: mam soubor "​nejaky-soubor"​ s pravy 600 (vlastnik=ja +Teď chci povolit jednomu dalšímu uživateli ​(ale ne celé skupině ''​ufal_ext''​čtení toho souboru, to udělám pomocí ''​setfacl''​:
-muze rw, ostatni nic):+
  
-ls -l nejaky-soubor  +<code bash>setfacl ​-m u:zeman:nejaky-soubor</​code>​
--rw------- 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor+
  
-Ted chci povolit treba tobe cteni toho souboru, to udelam pomoci +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ší.
-setfacl:+
  
-setfacl ​-m u:zeman:r nejaky-soubor+<code bash>ls -l nejaky-soubor 
 +-rw-r-----+ 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</​code>​
  
-Prepinac "​-m"​ znamena "​modify",​ v tomhle pripade pridani dalsi polozky, +Pro lepší výpis práv musíme použít ''​getfacl''​:
-je to uzivatel (to je to "u:") zeman, a jeho prava.+
  
-Vsimni si, ze kdyz pak pustis na ten soubor ls -l, tak tesne za temi +<code bash>$ getfacl nejaky-soubor ​
-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 +
--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 45: 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 ]