Eu chmod tar arquivo 600, mas ainda posso vê-lo no navegador via apache


3

Eu estou querendo saber por que ainda é possível ver o meu arquivo tar quando é de propriedade de root e chmoded para 600.

Eu tenho o apache, e meu servidor é o Ubuntu 12.04.

Alguma explicação sobre esse comportamento?

pasta pai é de propriedade da www-data.

Obrigado!


Por "ver", você quer ver a entrada do arquivo na pasta ou visualizar o conteúdo do arquivo?
Darth Android

@DarthAndroid Quero dizer que eu posso baixar o arquivo via navegador.

Respostas:


0

Não estou familiarizado com a maneira como o Apache exibe internamente a listagem de arquivos, mas sei como funciona no nível do sistema de arquivos.

Se você fosse o usuário www-data e fizesse um cd para o diretório onde você alterou as permissões e fizesse uma listagem de arquivos usando ls, você ainda veria o arquivo tar mesmo que ele seja 600 e possua root.

A permissão de leitura apenas informa que você pode ler o conteúdo do arquivo. O sistema de arquivos mantém a lista de arquivos em um diretório dentro do diretório "file". Se você tiver permissão de leitura no diretório, você pode listar todos os arquivos neste diretório, isso não significa que você pode ler cada arquivo.

Se você quer que um arquivo seja oculto, você o chama de dot-algo como .myfile.tar (mas o Apache também pode estar exibindo arquivos ocultos) ou você o move para outro lugar.

O que você pode fazer também é criar um subdiretório de propriedade de root e com o grupo pertencente ao mesmo grupo de www-data com os seguintes direitos 730. 3 significa gravável e executável, em um diretório significa que você pode modificar sua estrutura (criar ou renomear um arquivo) porque você pode escrever dentro do diretório "file" e você pode acessar seu sub-elemento (é o que o x representa em um diretório). Então, mesmo o usuário www-data poderia mover seu arquivo tar para este subdiretório, mas o Apache não poderia listar seu conteúdo. E o www-data pode continuar editando o arquivo, desde que ele se lembre do seu nome!


Sim, este é exatamente o problema. Apache mostra o arquivo, mas não me deixa baixá-lo. Eu percebi isso ontem à noite ontem :) mas graças a sua resposta está correta.

Que bom que você encontrou sua própria resposta :)
Huygens

1

Você deve verificar o usuário que está executando o daemon do Apache, talvez tenha sido executado como root.


seria bom se você explicasse como fazer isso
Baarn

@ WalterMaier-Murdnelch Eu fiz assim ps aux | grep apache

@Qri Eu tenho 1 instância do apache2 como root e 3 instâncias dele como www-data - estou em território desconhecido agora :)

@SandroDzneladze Isso é normal (os usuários root e www-data) e se o arquivo na verdade é de propriedade root e permissões 600, eu tentaria verificar em outro aplicativo de navegador e ver se não está relacionado ao cache.
Qri

@Qri eu fiz certo, fiz sudo chown root: root countdown.tgz e sudo chmod 600 countdown.tgz e usei o safari para verificá-lo ... ainda exibe o arquivo no navegador.

0

Para solucionar problemas, tente criar um novo arquivo que o Apache não permita o download.

touch test.tgz
sudo chown root:root test.tgz
sudo chmod 600 test.tgz

Se você não pode baixar o arquivo de teste, é apenas algum tipo de cache. O arquivo pode ficar em cache na sua máquina cliente, no servidor ou em qualquer outro computador intermediário.

Se você não puder acessar o mesmo arquivo com um disjuntor de cache (por exemplo, example.com/countdown.tgz?test ), ninguém mais poderá baixá-lo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.