
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.txt
se creó sin el grupo esperado de apache
. Tampoco se x
estableció 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