[ 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

Next revision
Previous revision
pristupova-prava-pomoci-acl [2008/06/26 23:43]
zeman vytvořeno
pristupova-prava-pomoci-acl [2017/09/30 20:20] (current)
rosa [Give all permissions to all ufal/ufal_ext users]
Line 1: Line 1:
-Míra Janíček píše:+====== Přístupová práva k souborům pomocí ACL ======
  
-<​code>​Pekny tutorial ​(z neho jsem se to naucil) je tady:</​code>​+ACL (access control listje 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:
  
-http://www.vanemery.com/Linux/ACL/​linux-acl.html+https://wiki.archlinux.org/index.php/Access_Control_Lists
  
-<​code>​ale shrnu to v kostce, nic na tom neni.  ​;+V&nbsp;kostce:
  
-Modelova ​situace: ​mam soubor "​nejaky-soubor"​ s pravy 600 (vlastnik=ja +Modelová ​situace: ​mám soubor "​nejaky-soubor"​ s právy ​600, tj. vlastník ​(já) může ​rw, ostatní ​nic:
-muze rw, ostatni ​nic):+
  
-$ ls -l nejaky-soubor  +<code bash>$ ls -l nejaky-soubor  
--rw------- 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor+-rw------- 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</​code>​
  
-Ted chci povolit ​treba tobe cteni toho souboru, to udelam pomoci +Teď chci povolit ​jednomu dalšímu uživateli (ale ne celé skupině ''​ufal_ext''​) čtení ​toho souboru, to udělám pomocí ''​setfacl''​:
-setfacl:+
  
-$ setfacl -m u:zeman:r nejaky-soubor+<code bash>$ setfacl -m u:zeman:r nejaky-soubor</​code>​
  
-Prepinac ​"​-m" ​znamena ​"​modify",​ v tomhle ​pripade pridani dalsi polozky, +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ší.
-je to uzivatel ​(to je to "​u:"​) zemana jeho prava.+
  
-Vsimni si, ze kdyz pak pustis na ten soubor ​ls -l, tak tesne za temi +<code bash>​$ ​ls -l nejaky-soubor 
-deviti policky, pred poctem linku, sedi "+" ​-- tim ti dava ls na vedomi, +-rw-r-----1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</​code>​
-ze ten soubor ma nejaky ​ACL a ze to je tedy s pravy komplikovanejsi.+
  
-$ ls -l nejaky-soubor +Pro lepší výpis práv musíme použít ''​getfacl''​:
--rw-r-----+ 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor+
  
-Pro lepsi vypis musime pouzit getfacl: +<code bash>$ getfacl nejaky-soubor ​
- +
-$ getfacl nejaky-soubor ​+
 # file: nejaky-soubor # file: nejaky-soubor
 # owner: janicek # owner: janicek
Line 38: Line 31:
 group::--- group::---
 mask::r-- mask::r--
-other::---+other::---</​code>​ 
 + 
 +Č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. 
 + 
 +Č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 
 + 
 +<code bash>$ setfacl -m g:​ufal_ext:​rx /​net/​data/​conll/​2007/​en</​code>​ 
 + 
 +a případně totéž vevnitř, jestli je to tam podobné. 
 + 
 +===== Jak přidat rekurzivně právo "​x"​ adresářům,​ ale ne souborům? ===== 
 + 
 +<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>​
  
-Ctvrty radek ("​mask"​) rika, jaka nejlepsi prava muze kdokoliv v ACL (cili +===== Give all permissions to all ufal/​ufal_ext users =====
-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" +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).
-v /​export/​data/​conll/​2007tak by melo stacit dat+
  
-setfacl -m g:ufal_ext:rx /​export/​data/​conll/​2007/en+<code bash>setfacl -m g:ufal:rwx,g:ufal_ext:rwx FILE</code>
  
-a pripadne totez vevnitr, jestli je to tam podobne. 
-</​code>​ 

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