¿Cómo se configura la ACL de Linux para que utilice de forma predeterminada un grupo específico con permisos?

¿Cómo se configura la ACL de Linux para que utilice de forma predeterminada un grupo específico con permisos?

Entonces tengo un directorio: www\que se ve así:

[eugene@servidor ~]$ ll
total 0
drwxrwx---. 2 eugene eugene 57 10 de diciembre 16:04 www

Quiero que todos los archivos nuevos creados en este directorio pertenezcan al grupoapache ytener los permisos 770.

Así que lo hice:

[eugene@servidor ~]$ chgrp apache www/
[eugene@servidor ~]$ setfacl -Rm u:eugene:rwx,d:g:apache:rwx,d:o:--- www/
[eugene@servidor ~]$ ll
drwxrwx---+ 2 eugene apache 43 10 de diciembre 16:10 www
[eugene@servidor ~]$ echo 123 > www/test.txt
[eugene@servidor ~]$ ll www/
-rw-rw----+ 1 eugene eugene 4 10 de diciembre 16:11 test.txt
[eugene@servidor ~]$  

Como verá, test.txtse creó sin el grupo esperado de apache. Tampoco se xestableció el permiso (de ejecución)...

¿Que me estoy perdiendo aqui?

Respuesta1

Para que los archivos dentro de su directorio se creen con el grupo Apache, será mejor que configure el bit SETGUID:

chmod +2000 www

En cuanto a los derechos predeterminados para crear archivos, no puede hacerlo usando ACL, porque la umask predeterminada de Linux siempre gana. Umask no permite crear archivos con 7 dígitos (rwx) en los derechos de los archivos creados.

En su lugar, puedes crear un script.archivo mkcon lo siguiente en su interior:

touch $1
chmod 770 $1

hacerlo ejecutable:

chmod 750 mkfile

y colóquelo en la carpeta /usr/local/bin. Ahora puedes crear archivos con 770 permisos en todas partes:

mkfile my_file

información relacionada