Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
pristupova-prava-pomoci-acl [2014/03/18 08:26] zeman Úprava. |
pristupova-prava-pomoci-acl [2017/09/30 20:20] (current) rosa [Give all permissions to all ufal/ufal_ext users] |
||
---|---|---|---|
Line 3: | Line 3: | ||
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: | 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: | ||
- | http://www.vanemery.com/Linux/ACL/linux-acl.html | + | https://wiki.archlinux.org/index.php/Access_Control_Lists |
V kostce: | V kostce: | ||
Line 19: | Line 19: | ||
<code bash>$ ls -l nejaky-soubor | <code bash>$ ls -l nejaky-soubor | ||
- | -rw-r-----+ 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</bash> | + | -rw-r-----+ 1 janicek ufal_ext 0 2008-06-26 22:14 nejaky-soubor</code> |
Pro lepší výpis práv musíme použít ''getfacl'': | Pro lepší výpis práv musíme použít ''getfacl'': | ||
Line 35: | Line 35: | ||
Č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. | Č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 /export/data/conll/2007, tak by mělo stačit dát | + | Č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 /export/data/conll/2007/en</code> | + | <code bash>$ setfacl -m g:ufal_ext:rx /net/data/conll/2007/en</code> |
a případně totéž vevnitř, jestli je to tam podobné. | a případně totéž vevnitř, jestli je to tam podobné. | ||
Line 44: | Line 44: | ||
<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> | ||