Uma das perguntas mais frequentes de quem começa instalar o Magento, são as permissões corretas.
Eles podem diferir, independentemente de você executar sua loja no modo de um usuário ou de muitos usuários, e também podem ser diferentes para modos diferentes.
Abaixo, discutimos as permissões de arquivo e pasta do Magento 2 e esclarecemos como usá-las corretamente.
Modo de usuário único
O modo de um usuário é o caso mais simples. Neste caso, o usuário deve pertencer ao grupo, que possui o sistema Magento e também executa o servidor web. Para eles, as seguintes regras se aplicam:
- Todos os diretórios devem ter permissões 770. Essa permissão dá permissão de leitura, gravação e execução ao proprietário e ao seu grupo, mas nenhuma permissão a mais ninguém.
- Todos os arquivos devem ter permissões 660. Essa permissão significa que o proprietário e o grupo podem ler e gravar, mas outros usuários não têm permissões.
Diretórios temporários e de mídia (/var, /pub/media, /pub/static) devem ter acesso público ( permissão 777 )
Para configurá-los, siga estas etapas:
1) Faça login no seu SSH/CLI com permissões de administrador e navegue até a raiz da sua loja.
2) Defina permissões para os arquivos:
find . -type f -exec chmod 644 {} \;
3) Defina permissões para os diretórios:
find . -type d -exec chmod 755 {} \;
4) Defina permissões para diretórios especiais:
find ./var -type d -exec chmod 777 {} \;
find ./pub/media -type d -exec chmod 777 {} \;
find ./pub/static -type d -exec chmod 777 {} \;
Em alguns casos, você não pode usar permissões 770 ou 660 (sistemas Fast-CGI, por exemplo). Em vez disso, você pode usar 755 e 644, respectivamente.
Em qualquer caso, não defina a permissão 777 (pública) para o diretório /app/etc. Ele contém informações sobre seu banco de dados, e o acesso público pode ser uma maneira aberta de invadir sua loja. Divulgue o acesso lá apenas para quem você realmente pode confiar.
Modo de dois usuários
Basicamente este esquema pode ser usado para qualquer quantidade de usuários, bastando dividi-los nos seguintes grupos:
- O grupo de servidores web, que executa o Magento Admin (incluindo o Assistente de Configuração) e a loja;
- Um grupo de linha de comando, que pode efetuar login remotamente no servidor e executar tarefas de manutenção. Este grupo também deve ser capaz de executar tarefas cron Magento e utilitários de linha de comando.
Neste caso, a configuração de permissões deve ser como no modo de um usuário, com as duas exceções. Os diretórios vendor e app/etc seu conteúdo devem ser acessíveis para leitura/gravação para o segundo grupo. Isso pode ser feito através dos seguintes comandos:
find ./vendor -type d -exec chmod 775 {} \; && find ./app/etc -type d -exec chmod 775 {} \; find ./vendor/* -type f -exec chmod 664 {} \;
Você também precisa passar para o segundo grupo a possibilidade de executar comandos e trabalhar com a configuração da sua loja:
chmod o-rwx app/etc/env.php && chmod u+x bin/magento
Isso definirá as permissões corretas para ambos os grupos.