O erro “SoftException in Application.cpp:267: File ‘/home/username/public_html/index.php’ is writeable by group” frequentemente ocorre em servidores que utilizam cPanel, especialmente quando o ambiente está configurado com o manipulador de PHP suPHP. Esse manipulador exige permissões estritas para arquivos e diretórios, e permissões excessivas podem disparar erros de segurança.

Neste artigo, abordamos como identificar e corrigir esse problema utilizando chmod e chown, ferramentas comuns no gerenciamento de arquivos e permissões no Linux.

Entendendo o erro SoftException in Application.cpp

  1. Permissões inadequadas: Arquivos configurados como graváveis pelo grupo (por exemplo, com permissões 0666) representam um risco de segurança e não são aceitos por alguns ambientes configurados com suPHP ou outras restrições de segurança.
  2. Propriedade incorreta: Se os arquivos não estiverem atribuídos ao usuário correto, isso também pode levar a conflitos de permissões.
  3. Configuração do servidor: Alterações no manipulador PHP (de DSO para suPHP) tornam as permissões mais rígidas. Em suPHP, os arquivos precisam ser legíveis pelo proprietário e seguros contra gravação de terceiros.

Resolvendo o erro SoftException in Application.cpp

Algumas manerias de resolver o erro SoftException in Application.cpp incluem:

Corrigir as permissões dos arquivos e diretórios com find e chmod

O comando chmod é usado para alterar as permissões de arquivos e diretórios no Linux. Aqui estão os passos para garantir que os arquivos tenham permissões adequadas:

  1. Acesse o servidor via SSH:

Substitua username pelo seu nome de usuário e servidor.com pelo endereço do servidor.

  1. Navegue até o diretório contendo os arquivos:
cd /home/username/public_html

Substitua username pelo nome do usuário que possui os arquivos.

  1. Defina permissões apropriadas para arquivos e diretórios:

Ajuste as permissões de diretórios para 0755 (leitura, gravação e execução apenas para o proprietário):

find . -type d -exec chmod 755 {} \;
  1. Ajuste as permissões de arquivos para 0644 (leitura e gravação apenas para o proprietário):
find . -type f -exec chmod 644 {} \;
  1. Verifique se o arquivo problemático está com permissões corretas:
ls -l index.php

O resultado esperado para um arquivo seria algo como:

-rw-r--r-- 1 username username 1234 Dec 15 14:00 index.php

Ajuste de Propriedade com chown

Em muitos casos, o erro ocorre porque o arquivo ou diretório está sob o controle de outro usuário ou grupo. Para corrigir isso, use o comando chown para garantir que os arquivos estejam atribuídos ao proprietário correto.

  1. Verifique a propriedade atual dos arquivos e diretórios:
ls -l
  1. Procure por inconsistências no proprietário e grupo. Por exemplo:
-rw-r--r-- 1 root root 1234 Dec 15 14:00 index.php

Aqui, root root indica que o arquivo pertence ao usuário e grupo root, o que não está correto para um ambiente de hospedagem com cPanel (como não estaria para qualquer outro servidor).

  1. Ajuste a propriedade para o usuário correto:
chown -R username:username /home/username/public_html

Substitua username pelo nome do usuário correto do cPanel. A opção -R aplica a alteração de forma recursiva a todos os arquivos e diretórios dentro de public_html.

  1. Verifique novamente:
ls -l

O resultado ideal será algo como:

-rw-r--r-- 1 username username 1234 Dec 15 14:00 index.php

Reiniciar Serviços (Opcional)

Depois de ajustar permissões e propriedade, pode ser necessário reiniciar serviços como o Apache para garantir que as alterações sejam reconhecidas:

sudo service apache2 restart

Práticas Recomendadas

  • Evite permissões excessivas: Nunca use permissões como 0777, pois elas permitem que qualquer usuário (mesmo não autorizado) leia, escreva e execute os arquivos.
  • Faça backups: Antes de realizar qualquer modificação, especialmente em um servidor de produção, crie um backup dos arquivos para evitar perda de dados.
  • Use ferramentas do cPanel: Se você não tiver acesso ao SSH, use o Gerenciador de Arquivos do cPanel para ajustar permissões manualmente.
  • Audite regularmente: Realize auditorias periódicas nos arquivos para identificar permissões ou propriedades inadequadas.

Conclusão

Resolver o erro “SoftException in Application.cpp:267” exige ajustes simples nas permissões e propriedade dos arquivos no servidor. Usar os comandos chmod para definir permissões corretas e chown para garantir a propriedade apropriada do arquivo são passos cruciais para evitar esse tipo de problema.

Além disso, manter práticas recomendadas no gerenciamento de permissões ajudará a proteger o ambiente de possíveis vulnerabilidades de segurança. Implementando as soluções descritas, você estará garantindo que seu servidor seja seguro e esteja em conformidade com as exigências do suPHP ou de outros manipuladores PHP utilizados.