Arquivo ainda não gravável em / var / www / html após o comando chmod

2

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.

Para ser específico, eu quero instalar o phpFreeChat no meu sistema, então eu coloquei esses arquivos no diretório / var / www / html / freechat, 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?

    
por lastland 17.06.2011 / 09:42

4 respostas

1

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.

    
por 18.06.2011 / 04:38
0

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

    
por 17.06.2011 / 09:49
0

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
    
por 17.06.2011 / 11:34
0

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)"

    
por 07.08.2013 / 18:43