Lê arquivos que são de propriedade de www-data

1

Eu tenho um site que escreve arquivos quando necessário. Esses arquivos são de propriedade da www-data. Eu também tenho meu usuário, que executa um aplicativo para coletar informações desses arquivos. Está escrito em Python. No entanto, como esses arquivos são de propriedade da www-data, meu aplicativo não pode lê-los e tenho que executar o aplicativo como root, o que prefiro não fazer. O que posso fazer para permitir que meu usuário leia os arquivos que o www-data cria?

EDIT , em relação aos comentários:

-rw-r--r-- 1 ivan www-data 444 2011-07-20 16:34 serverfile1.php
-rw-r--r-- 1 ivan www-data 140 2011-07-20 16:34 serverfile2.php
-rw-r--r-- 1 ivan www-data 478 2011-07-20 16:35 serverfile3.php
-rw-r--r-- 1 www-data www-data 10 2011-07-20 17:41 info1.txt
-rw-r--r-- 1 www-data www-data 21 2011-07-20 17:41 info2.txt
-rw-r--r-- 1 ivan www-data 236 2011-07-20 16:35 serverfile4.php

Ainda não consigo ler os arquivos info1 e info2 usando o usuário ivan

    
por Ivan 20.07.2011 / 17:02

4 respostas

3

Adicione seu usuário ao grupo www-data e torne os arquivos readaptáveis.

# usermod -a -G www-data username
# chmod -R g+r /var/www/files
    
por 20.07.2011 / 17:17
0

Supondo que a listagem de perm do arquivo seja precisa, o usuário ivan deve ter acesso a esses arquivos.

Você pode querer verificar o modo em que está abrindo o arquivo com o Python. Se você tentar abri-lo com privilégios de gravação, receberá erros.

Se, como ivan, você pode catar ou dirigir os arquivos info1 / info2, é mais provável que seja um problema de python / código.

    
por 20.07.2011 / 17:53
0

Seus arquivos já podem ser lidos em grupo, se você estiver abrindo os arquivos para leitura, não deverá ter nenhum problema. Alguns deles já foram sugeridos, mas aqui estão algumas coisas para verificar.

  1. O código Python está abrindo para ler e não escrever
  2. Verifique se o diretório em que os arquivos estão é legível e executável (pelo menos executável) pelo mundo.
  3. Teste usando cat através do usuário Ivan, se funcionar, é um problema com o código python.
por 20.07.2011 / 18:52
0

Uma alternativa seria executar o php como fastcgi sob um usuário específico (php fastcgi + suexec).

tchau, stefano

    
por 21.07.2011 / 10:06