
eu liQuais permissões os arquivos/pastas do meu site devem ter em um servidor web Linux?e aqui está uma pergunta vinculada. Digamos:
/var/www/bobweb/
É de propriedade debob:bob
/var/www/eveweb/
É de propriedade deeve:eve
e que cada site tenha um Apache VirtualHost, com link parabobweb. comeeveweb.com.
Cada site precisa ser gravável pelo Apache (há um uploader de imagens em ambos os sites), então leio frequentemente:
"Basta fazer
chgrp -R www-data /var/www/bobweb/
, idem para Eve, e isso é tudo!"
Isto dá:
drwxrwx--- 3 bob www-data 4096 Jan 9 17:45 bobweb
drwxrwx--- 5 eve www-data 4096 Feb 26 2019 eveweb
Na verdade, isso impede que Bob visite os arquivos de Eve a partir do shell/SSH e vice-versa.
Masparece que Eve poderia escrever um script PHP (executado por www-data
) para ler (ou até mesmo modificar) /var/www/bobweb/wp-config.php
(roubando assim a senha do banco de dados de Bob!).
Pergunta: como modificar as propriedades e permissões do usuário + grupo para evitar que Bob leia os arquivos de Eve e vice-versa, mas ainda permitir que o Apache + PHP grave dados nesses sites?
(situação típica de hospedagem compartilhada)
Responder1
Isso não pode ser feito totalmente apenas com permissões de arquivo - você deve consultar os aplicativos que está executando para criar jails. Para PHP você pode usar "open_basedir" por host virtual.
Você também desejará algo semelhante em seu servidor FTP (você não informou qual servidor está usando, mas muitos/a maioria possui uma diretiva apropriada).
É claro que se você estiver permitindo o cgis, todo o espaço do problema muda.