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
aclreglas sobredevelopmentdirectorio 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 endevelopmentdir, 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?