Este problema foi resolvido pelo comando setenforce 0
, que desligaria o SELinux.
Quão tola eu sou! Eu nunca pensei sobre isso.
Obrigado Flimzy e njd de qualquer maneira.
Eu tenho alguns problemas ao tentar instalar alguns aplicativos no meu sistema linux. Dizem que os arquivos no meu diretório / var / www / html / xxx, onde eu os coloquei, não são graváveis. O comando chmod 777 xxx
foi tentado para fazê-lo funcionar, mas o erro permanece quando abri os aplicativos novamente.
cd
lá e digitei chmod 777 data/private
, chmod 777 data/public
no bash. Aqui está o resultado de list -al data
:
drwxr-xr-x. 4 root root 4096 Jun 17 15:07 .
drwxr-xr-x. 13 root root 4096 Jun 17 15:22 ..
drwxrwxrwx. 2 root root 4096 Jun 17 15:07 private
drwxrwxrwx. 3 root root 4096 Jun 17 15:07 public
Tudo isso pareceu certo para mim, até que eu digitei http://localhost/freechat
no meu navegador. Aqui está o resultado:
phpFreeChat cannot be initialized, please correct these errors:
/var/www/html/freechat/src/../data/private is not writeable /var/www/html/freechat/src/../data/private/cache can't be created /var/www/html/freechat/src/../data/private/cache is not writeable /var/www/html/freechat/src/../data/private/cache is not readable cannot create /var/www/html/freechat/src/../data/public/themes/default cannot create /var/www/html/freechat/src/../data/public/themes/default /var/www/html/freechat/src/../data/private/chat can't be created /var/www/html/freechat/src/../data/private/chat is not writeable /var/www/html/freechat/src/../data/private/chat is not readable /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada can't be created /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada is not writeable /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada is not readable
Estou bastante confuso com isso porque esta situação não aconteceu apenas na instalação deste aplicativo, mas todos. Os erros devem ser cometidos por mim, mas o que é isso?
Você precisa fazer um chmod recursivo para afetar todos os arquivos e subdiretórios contidos em data / private e data / public:
chmod -R 777 /var/www/html/freechat/private
chmod -R 777 /var/www/html/freechat/public
Agora, tendo dito, você deve NÃO estar usando o modo 777. Especialmente se alguém além de você tiver uma conta de login nesse servidor. 777 significa mundo ler, escrever e executável. Essencialmente, qualquer usuário em seu sistema pode ler, gravar, excluir ou mexer com esses arquivos.
No mínimo, você deve mudar isso para o modo 774, o que significa que apenas o usuário e o grupo (que são ambos root no momento) podem gravar os arquivos, mas qualquer usuário pode lê-los.
Idealmente, você também faria com que todos os arquivos pertencessem ao mesmo usuário não-root que executa o software freechat, e apenas concedam permissão de leitura / gravação a esse usuário / grupo.
No mínimo, mude seu modo para 770, de modo que somente o usuário root e o grupo raiz tenham acesso
Se você observar as permissões em cada diretório:
ls -ld / /var /var/www /var/www/html /var/www/html/freechat
e observe a primeira coluna, você deve ver as linhas começando assim:
drwxr-xr-x
No mínimo, deve haver um x no final da primeira coluna: sem isso, o servidor web não poderá acessar o conteúdo do diretório freechat.
Então você pode precisar
chmod o+x /var/www/html
e até mesmo
chmod o+x /var/www
A maneira correta de fazer isso sem matar o SE é fazer isso
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/freechat/data(/.*)'
restorecon -R /var/www/html/freechat/data Quick explanation:
O primeiro bit diz "todas as coisas que começam com / var / www / html / freechat / data devem ter o contexto padrão 'httpd_sys_rw_content_t'"
O outro diz "definir todos os contextos nos arquivos / diretórios em httpd_sys_rw_content_t (recursivamente) para os padrões (que foram alterados)"
Tags chmod php linux file-permissions httpd