Takže toto je situace:
dostal server pro webové vývojáře. Vývojářů je mnoho. Všichni developers + PHP + Apache patří do www skupina. Existuje adresář pro vývoj – development .
Cílem je, aby byl každý soubor ve development adresář má 755 oprávnění a kdykoli jakýkoli vývojář vytvoří, upraví soubor ve development adresář, soubory budou mít stále 755 .
Přečetl jsem si tedy řadu acl tutoriály, návody a návody, ale stále nemohu dosáhnout požadovaného výsledku.
- můj disk je připojen pomocí
acl - Mám
chown -R www:www development - přidali
chmod g+s development -
Nastavil jsem číslo
aclpravidla prodevelopmentadresář a dostal jsem toto:$ getfacl development # file: development # owner: www # group: www # flags: -s- user::rwx user:www:rwx group::rwx group:www:rwx mask::rwx other::r-x default:user::rwx default:user:www:rwx default:group::rwx default:group:www:rwx default:mask::rwx default:other::r-x p.s. I know its messy, was doing a number of tests -
Podle mé představy o
ACL, pokud by adresář měl taková pravidla, můj úkol by měl být splněn, ale když se pokusím vytvořit soubor vedevelopmentdir, dostanu:-rw-rw-r--+ 1 www www 0 Nov 21 09:14 newfile
Nerozumím tomu, proč vytváří rw- místo rwx .
Je to pravděpodobně něco jednoduchého, co mi uniklo, nebo nějaký obecný koncept, kterému nerozumím.
Přijatá odpověď:
Vaše výchozí seznamy ACL nahrazují umask, který neurčuje výchozí oprávnění, ale maximální oprávnění k vytváření nových souborů. V tomto případě rwxrwxr-x .
Poté vaše aplikace zavolá open nebo creat s oprávněními, která chce. Téměř všechny aplikace budou vyžadovat rw-rw-rw- pro soubory.
Můžete to vidět spuštěním strace , např.
$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
(0666 je stejný jako rw-rw-rw- .)
Tato dvě oprávnění jsou kombinována pomocí bitového součinu AND a poskytují rw-rw-r-- .
rwxrwxr-x # default ACL
rw-rw-rw- # permission requested (e.g. by touch, vim, etc.)
& _________
rw-rw-r-- # effective permissions
Další vysvětlení najdete v POSIX Access Control Lists — „Výchozí příklad ACL“.
Skutečná otázka tedy zní:proč potřebujete, aby byly soubory spustitelné?