Quindi questa è la situazione:
ho un server per gli sviluppatori web. Ci sono molti sviluppatori. Tutti gli developers
+ PHP
+ Apache
appartiene a www
gruppo. C'è una directory di sviluppo – development
.
L'obiettivo è che ogni file in development
la directory ha 755
autorizzazioni e ogni volta che uno sviluppatore crea, modifica un file in development
directory, i file avranno ancora 755
.
Quindi ho letto un certo numero di acl
tutorial, guide e howto ma non riesco ancora a ottenere il risultato che desidero.
- il mio disco è montato con
acl
- Ho
chown -R www:www development
- aggiunto
chmod g+s development
-
Ho impostato un numero di
acl
regole sullodevelopment
directory e ho ottenuto questo:$ 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
-
Secondo la mia idea di
ACL
, se la directory avesse tali regole, il mio compito dovrebbe essere raggiunto, ma quando provo a creare un file indevelopment
dir, ottengo:-rw-rw-r--+ 1 www www 0 Nov 21 09:14 newfile
Non riesco a capire perché crea rw-
invece rwx
.
Probabilmente è qualcosa di semplice che mi è sfuggito o qualche concetto generale che non capisco.
Risposta accettata:
Gli ACL predefiniti sostituiscono umask, che specifica non predefinito autorizzazioni, ma massimo autorizzazioni per la creazione di nuovi file. In questo caso rwxrwxr-x
.
Quindi la tua applicazione chiama open
o creat
con i permessi che vuole. Quasi tutte le applicazioni richiederanno rw-rw-rw-
per i file.
Puoi vederlo eseguendo strace
, ad es.
$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
(0666
è lo stesso di rw-rw-rw-
.)
Le due autorizzazioni vengono combinate usando AND bit per bit per fornire rw-rw-r--
.
rwxrwxr-x # default ACL
rw-rw-rw- # permission requested (e.g. by touch, vim, etc.)
& _________
rw-rw-r-- # effective permissions
Per un'altra spiegazione, consulta Elenchi di controllo accessi POSIX: "Esempio ACL predefinito".
Quindi la vera domanda è:perché hai bisogno che i file siano eseguibili?