Así que esta es la situación:
obtuve un servidor para desarrolladores web. Hay muchos desarrolladores. Todos los developers
+ PHP
+ Apache
pertenece a www
grupo. Hay un directorio de desarrollo:development
.
El objetivo es que cada archivo en development
directorio tiene 755
permisos y cada vez que un desarrollador crea, modifica un archivo en development
directorio, los archivos seguirán teniendo 755
.
Así que he leído una serie de acl
tutoriales, guías y procedimientos, pero sigo sin obtener el resultado que deseo.
- mi disco está montado con
acl
- Obtuve
chown -R www:www development
- agregado
chmod g+s development
-
Establecí un número de
acl
reglas sobredevelopment
directorio y obtuve esto:$ 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
-
Según mi idea de
ACL
, si el directorio tuviera tales reglas, mi tarea debería lograrse, pero cuando intento crear un archivo endevelopment
dir, obtengo:-rw-rw-r--+ 1 www www 0 Nov 21 09:14 newfile
Parece que no puedo entender por qué crea rw-
en cambio rwx
.
Probablemente sea algo simple que me perdí o algún concepto general que no entiendo.
Respuesta aceptada:
Sus ACL predeterminadas reemplazan el umask, que especifica que no es predeterminado permisos, pero máximo permisos para crear nuevos archivos. En este caso rwxrwxr-x
.
Entonces su aplicación llama a open
o creat
con los permisos que quiere. Prácticamente todas las aplicaciones solicitarán rw-rw-rw-
para archivos.
Puedes ver esto ejecutando strace
, por ejemplo
$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
(0666
es lo mismo que rw-rw-rw-
.)
Los dos permisos se combinan usando AND bit a bit para dar rw-rw-r--
.
rwxrwxr-x # default ACL
rw-rw-rw- # permission requested (e.g. by touch, vim, etc.)
& _________
rw-rw-r-- # effective permissions
Para obtener otra explicación, consulte Listas de control de acceso POSIX: "Ejemplo de ACL predeterminado".
Entonces, la verdadera pregunta es:¿por qué necesita que los archivos sean ejecutables?