Estou me preparando para implantar um site Drupal 7 e não consigo encontrar nenhuma documentação sobre como as permissões recomendadas de arquivo e diretório com consciência de segurança devem ser definidas.
Especificamente default/files/
(também subdiretórios?) settings.php
, .htaccess
E qualquer outra coisa que eu deva estar ciente.
Respostas:
Seu servidor da web deve poder ler todos os arquivos, mas não gravar neles. Se o site envolver o upload de arquivos, dê ao servidor permissão para gravar apenas nessa pasta.
Mais informações sobre como configurar isso, bem como algumas coisas que podem acontecer se você não o fizer, estão disponíveis nos documentos do Drupal .
fonte
Essa página drupal como tantas é muito longa e confusa. Mas ele contém este post de Jason, que acertou a unha na cabeça:
fonte
Minha prática em torno da criação de um novo site Drupal em um servidor é ter um usuário que faça parte do grupo de servidores Web (normalmente Apache) e que esse usuário possua todos os arquivos Drupal. No Ubuntu, estes são os comandos para configurar isso:
Depois de configurada, eu irei entrar como usuário e instalar o Drupal em / var / www / example / docroot ou similar, e depois criar o diretório de arquivos manualmente e copiar o arquivo settings.php. Uma vez que efetuamos login como nosso exemplo de usuário antes de copiar no Drupal, nossa propriedade e permissões de arquivo devem ser automaticamente configuradas corretamente em todos os arquivos e scripts principais do Drupal (incluindo arquivos .htaccess).
Agora vamos configurar o diretório de arquivos.
Em seguida, configuraremos as permissões para que o servidor da Web possa sempre gravar em qualquer arquivo que esteja nesse diretório. Fazemos isso usando 2775 em nosso comando chmod. O 2 significa que o ID do grupo será preservado para quaisquer novos arquivos criados neste diretório. O que isso significa é que www - data sempre será o grupo em qualquer arquivo, garantindo assim que o servidor da Web e o usuário sempre tenham permissões de gravação para quaisquer novos arquivos colocados nesse diretório. Os primeiros 7 significam que o proprietário (exemplo) pode R (Ler) W (Gravar) e X (Executar) qualquer arquivo aqui. O segundo 7 significa que o grupo (www-data) também pode RW e X qualquer arquivo nesse diretório. Finalmente, o 5 significa que outros usuários podem arquivos R e X, mas não podem escrever.
Se houver arquivos existentes nesse diretório, verifique se o servidor da Web possui permissões de gravação neles.
Agora o Drupal está pronto para ser instalado. Quando terminar, é MUITO importante voltar ao settings.php e garantir que todos os usuários tenham apenas permissões de leitura.
É isso aí! Essa configuração garante que você evite situações em que o usuário que possui o diretório ou o servidor da Web não possa gravar / alterar / remover arquivos no diretório de arquivos.
fonte
A pasta de arquivos do Drupal deve ser gravável pelo servidor da web. A maneira mais segura de fazer isso é mudar o grupo e torná-lo gravável, assim:
A pasta de upload de arquivos à parte, a mais segura é chmod 644 para todos os arquivos, 755 para diretórios.
Isso pode ser realizado assim (quando executado na pasta do site Drupal, o
.
caminho é atual):Lembre-se de que você precisará definir
chmod g+w
novamente após executar o comando acima, pois eles redefinirão o chmod em todos os arquivos e pastas.fonte
chgrp -R www-data sites/*/files
echmod -R g+w sites/*/files
para me livrar dos erros da página de status.Qualquer conselho para "chmod blah" ou "chown X" não tem sentido sem saber: qual é o usuário padrão: group nos arquivos e qual usuário e grupos seu servidor web executa.
Os Drupal Docs aos quais os usuários se vincularam são bastante bons sobre o assunto, mas um outro recurso é o Módulo de revisão de segurança, que ajuda a garantir que você tenha tudo definido corretamente.
fonte
Responderei considerando o caso em que os arquivos são criados no servidor usando FTP, usando credenciais diferentes daquela sob a qual o servidor da web é executado (normalmente, o Apache é executado como ninguém / ninguém). Isso significa que o usuário que possui os arquivos criados manualmente antes de executar o instalador do Drupal (que inclui também os arquivos carregados no servidor do arquivo Drupal) não é o usuário usado para executar o servidor da Web (nem o nome de usuário nem o grupo correspondem) . Este cenário também se aplica ao caso em que esses arquivos são criados usando SSH.
default/files
diretório) deve ser (para o usuário designado aos processos do servidor da web, que é o usuário designado aos scripts PHP em execução nesse servidor da web):default/files/<directory-used-by-the-module>/<sub-directory-used-by-the-module>
)fonte
Permissões recomendadas de arquivo / diretório:
Propriedade recomendada de arquivo / diretório:
Aqui estão as variáveis que controlam as permissões padrão de arquivo / diretório para novos itens:
Aqui está um script para corrigir permissões: fix-permissions.sh
Consulte Mais informação:
Aqui está o script que estou usando para corrigir permissões no host remoto para diretórios públicos / privados:
Nota: O código acima tentará recuperar o grupo Apache e configurá-lo como
GET_HTTP_GROUP
variável.fonte
Este script shell é encontrado na parte inferior desta página: https://www.drupal.org/node/244924
Eu o executo ocasionalmente para garantir que minhas permissões sejam configuradas corretamente.
fonte
Além disso, se você estiver executando o fastcgi, o php executará como o usuário e terá acesso a todos os arquivos aos quais o usuário tem acesso, a menos que você tente deliberadamente evitar isso.
fonte
Isso me ajudou com meus problemas de permissão OSX. Encontrei-o em https://www.drupal.org/node/244924#comment-3741738 pelo usuário do protoplasma. Eu era como ele tendo problemas após uma migração.
fonte
Existe um módulo chamado Revisão de segurança que verifica se seu site é seguro ou não. Eu também encontrei um link muito bom para definir permissões de site.
fonte