
Então eu tenho um diretório: www\
que se parece com isso:
[eugene@servidor ~]$ ll total 0 drwxrwx---. 2 eugene eugene 57 10 de dezembro 16:04 www
Quero fazer com que todos os novos arquivos criados neste diretório pertençam ao grupoapache
etenha as permissões 770
.
Então eu fiz:
[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 dezembro 16:10 www [eugene@servidor ~]$ echo 123 > www/test.txt [eugene@servidor ~]$ ll www/ -rw-rw----+ 1 eugene eugene 4 10 de dezembro 16:11 test.txt [eugene@servidor ~]$
Como você pode ver, test.txt
foi criado sem o grupo esperado de arquivos apache
. Nem a x
permissão (executar) foi definida ...
O que estou perdendo aqui?
Responder1
Para que os arquivos dentro do seu diretório sejam criados com o grupo Apache, é melhor definir o bit SETGUID:
chmod +2000 www
Quanto aos direitos padrão para criar arquivos, você não pode fazer isso usando ACL, porque umask padrão do Linux sempre vence. Umask não permite criar arquivos com 7 dígitos (rwx) nos direitos dos arquivos criados.
Em vez disso, você pode criar um scriptarquivo mkcom o seguinte dentro:
touch $1
chmod 770 $1
torne-o executável:
chmod 750 mkfile
e coloque-o na pasta /usr/local/bin. Agora você pode criar arquivos com permissões 770 em qualquer lugar:
mkfile my_file