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
acl
pravidla prodevelopment
adresář 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 vedevelopment
dir, 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é?