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:
-
Mova o arquivo para
/var/www
e altere suas permissões para quewww-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.
-
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.
-
Isso é perigoso e não deve ser feito! Adicione o usuário
www-data
ao gruporoot
ou altere a propriedade do arquivo para que ele possa ser lido porwww-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!