Como fazer a página web do php para acessar o arquivo no diretório / root?

2

Estou usando o Linux 12.04, apache e php está instalado nele.Quero acessar um arquivo de texto em / root / folder.I estou muito confuso com as permissões.O script php estou usando

<?php
$file = fopen("/root/cr.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached

while(!feof($file))
  {
  echo fgets($file). "<br>";
  }

fclose($file);
?> 

Este script é capaz de acessar o arquivo / var / www mas não consegue acessar o arquivo /root/ip.txt. Por favor, ajude e explique o passo a passo possível.

    
por acekapila 06.08.2013 / 15:41

2 respostas

1

Esquecerei as implicações de segurança de fazer isso e abordarei os negócios:

Se você tiver feito ls -l /var/www e ls -l /root , teria notado que ambas têm permissões diferentes:

$ ls -l /root/cr.txt
total 2
-rw-r-----  1 root root    0 Jul  9 01:28 cr.txt
$ ls -l /var/www
total 2
-rw-r--r--  1 www-data www-data    0 Jul  9 01:28 somefile

O /root só é legível para root , enquanto /var/www é legível por www-data user. Agora, se você verificar o processo do apache, você notará que ele está em execução usando o usuário www-data .

$ ps aux | grep apache www-data 5133 0.0 0.2 6512 1208? R + 10:04 0:00 apache

Agora, você está tentando executar o apache com o usuário www-data lendo o arquivo. Você pode fazer três cursos de ação:

  1. Mova o arquivo para /var/www e altere suas permissões para que www-data usuários possam lê-lo.

    mv /root/cr.txt /var/www/
    chown www-data:www-data /var/www/cr.txt
    

    Este é o método preferível.

  2. Crie um symlink para o arquivo no diretório /var/www :

    ln -s /root/cr.txt /var/www/
    

    Isso não garante que seu arquivo esteja sendo lido, em alguns casos.

  3. Isso é perigoso e não deve ser feito! Adicione o usuário www-data ao grupo root ou altere a propriedade do arquivo para que ele possa ser lido por www-data usuários:

    chown :www-data /root/cr.txt
    ## Or
    sudo adduser www-data root
    

    Isso não deve ser feito se você não entender os riscos!

por Braiam 06.08.2013 / 16:32
0

O arquivo é legível por usuários que não sejam o root? Tente adicionar acesso de leitura para TODOS.

sudo chmod a+r /root/cr.txt
    
por etsauer 06.08.2013 / 15:59