Como você define o Linux ACL como padrão para um grupo específico com permissões?

0

Portanto, tenho um diretório: www\ , que parece assim:

[eugene@server ~]$ ll
total 0
drwxrwx---. 2 eugene eugene 57 Dec 10 16:04 www

Eu quero que todos os novos arquivos criados neste diretório pertençam ao grupo apache e tenham as permissões 770 .

Então eu fiz:

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

Como você vê, o test.txt foi criado sem o grupo esperado de apache . Nem o conjunto de permissões x (execute) ...

O que estou perdendo aqui?

    
por eugene.parker 11.12.2015 / 01:16

1 resposta

0

Em ordem arquivos dentro de seu diretório são criados com o grupo apache, é melhor você definir bit SETGUID:

chmod +2000 www

Quanto aos direitos padrão para criar arquivos, você não pode fazê-lo usando o ACL, porque o padrão do Linux sempre ganha. O Umask não permite criar arquivos com 7 dígitos (rwx) nos direitos dos arquivos criados.

Em vez disso, você pode criar um script mkfile com o seguinte:

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 770 permissões em todos os lugares:

mkfile my_file
    
por 23.03.2016 / 23:34