Crie arquivos que tanto o www-data quanto o myuser possam editar

2

Eu tenho um diretório para armazenar faturas -

drwxrwxr-x  2 me www-data   49152 Sep  9 13:38 invoices

Existem dois aplicativos que gravam arquivos nesse diretório.

  1. Aplicativo da Web PHP

    -rw-r--r-- 1 www-data www-data 7681 Sep 9 13:38 invoice_1.html

  2. Script em Python

    -rw-rw-r-- 1 me me 8911 Sep 4 06:04 invoice_2.html

Agora quero substituir o invoice_2.html pelo aplicativo da web. Como eu faço isso?

Não quero adicionar www-data a me group. Não sei como, mas isso tornará meu servidor vulnerável a ameaças de segurança.

Me ajuda.

Obrigado.

    
por Hussain Tamboli 10.09.2014 / 12:18

1 resposta

6

Duas opções (ambas realizadas como root ):

Primeiro

Se você está feliz em ter me como membro do grupo www-data :

Adicione o usuário me ao grupo www-data :

# usermod -a -G www-data me

Defina o sinalizador SetGID no diretório invoices :

# chmod g+s /<path>/<to>/invoices

Agora, todos os arquivos criados no diretório invoices terão seu grupo configurado como www-data (o grupo do diretório) devido ao bit SetGID estar definido. Como o usuário me está nesse grupo, o usuário terá permissão para gravar nesse arquivo.

Segundo

Se você não quiser que o usuário me seja membro do grupo www-data , então ...

Crie um novo grupo - invoices .

# groupadd invoices

Adicione os usuários me e www-data a este grupo.

# usermod -a -G invoices me
# usermod -a -G invoices www-data

Altere o grupo do diretório invoices para este novo grupo ( invoices ).

# chown .invoices /<path>/<to>/invoices

Verifique se o grupo invoices tem permissão de gravação no diretório:

# chmod g+w /<path>/<to>/invoices

Defina o sinalizador SetGID no diretório invoices :

# chmod g+s /<path>/<to>/invoices

Agora, o diretório invoices pertencerá ao grupo invoice e todos os arquivos criados nele terão seu grupo configurado como invoices devido ao bit SetGID estar definido no diretório. Tanto me quanto www-data têm permissão de gravação, pois são membros do grupo invoices que tem permissão de gravação.

    
por 10.09.2014 / 13:06