
Para proteger os dados em meu servidor web, movi os inclusões do PHP para uma pasta chamada /var/www-includes (fora de /var/www, a raiz do servidor). Eu também corri chown root:wwwadmin
nessa chmod 770
pasta. Quando executo ls -ld
a pasta, ele verifica as configurações: drwxrwx--- ... root wwwadmin ... www-includes
Embora eu consiga fazer o cd para a pasta do meu usuário principal (adam) que é membro do wwwadmin, não consigo visualizar seu conteúdo em um navegador de arquivos gráfico. Alguma ideia do porquê? Editar: Além disso, ao tentar editar os arquivos contidos no nano, aparece uma mensagem de erro:
Error reading /home/adam/.nano_history: Permission denied
em seguida, abre o conteúdo do arquivo. Isso é relevante para o que pode estar acontecendo?
Responder1
Talvez uma pergunta óbvia, mas... você alterou também as permissões dos arquivos dentro do diretório? Em outras palavras, você usou o sinalizador "-r" (recursivo) ao emitir os comandos chown/chmod?
Responder2
Talvez não seja uma resposta (já que a postagem não inclui informações suficientes), mas posso alterá-la se necessário. Ao fazer cursos de treinamento em Linux, desenvolvi uma maneira de encontrar rapidamente o problema de permissão. Estou ciente de que você já executou algumas das etapas, mas preciso anotá-las por completo para fins de integridade.
- Mude para o usuário que você deseja usar para acesso. Faça isso antes de fazer qualquer outra coisa.
- Use
id
o comando para verificar seu UID e grupos atuais. Useid name-of-the-user
para verificar a configuração no disco. Saia e faça login novamente se forem diferentes e verifique novamente. - Use 'ls -l' para verificar o diretório de destino. Não se esqueça de verificar o personagem logo após as permissões. Pode haver um ponto significando que há um contexto selinux ou pode haver um sinal de mais significando que as ACLs do Linux estão definidas.
- Use 'cd' para entrar no diretório.
- Execute as ações necessárias nos arquivos regulares. Use
touch
para verificar o acesso de gravação,cat
para verificar o acesso de leitura. - Verifique se tudo funciona conforme o esperado ao nível da aplicação (ex. utilizar um navegador para aceder ao URL que deverá resultar na respetiva ação, utilizar a sua ferramenta de edição favorita que falhou anteriormente, etc)
- Adicione qualquer uma das verificações acima ao nível do aplicativo.
Se alguma das ações falhar e você não tiver ideia do motivo, verifique os logs em busca de alertas do selinux ou similares. Você também pode tentar preceder strace -o strace.log
a linha de comando e, em seguida, verificar o strace.log parapermissão negadamensagens. Mas é tudo magia negra até que você saiba o motivo exatopermissão negada.