Precisa de ajuda sobre as permissões do apache2

1

Já faz dois dias sem solução, por isso estou pedindo ajuda. Eu procurei e tentei, já resolvi alguns problemas, mas há uma última coisa.

Isso é o que estou tentando fazer: alterar o diretório padrão do apache2 de / var / www / html para / media / pi / storage / root_folder /

Eu segui este tutorial > link

na seção hosts virtuais, eu criei um html de teste em / home / pi / Desktop / e ele funciona devido a (eu suponho) permissões corretas.

Agora, quando faço exatamente a mesma coisa em / media / pi / storage / root_folder / e recarrego a página da Web, recebo uma mensagem de erro proibida, sugerindo que tenho permissão (novamente, suponho que isso esteja correto) drive (que é formatado com ext4)

Será que algo assim funciona? sudo chown -R USER:USER /media/pi/storage/root_folder/ OU chgrp -R www-data /username/ chmod -R 2750 /username/ OU é outra coisa?

Eu não sei qual comando é necessário, um passo-a-passo seria muito apreciado

E, finalmente, como faço para que essas permissões sejam aplicadas a novos subdiretórios e arquivos no futuro, para que eu não tenha mais o mesmo erro proibido?

Agradeço qualquer ajuda, obrigado pessoal ..

O arquivo de configuração do host virtual:

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /media/pi/storage/root_folder/

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Fragmento do log de erros do Apache:

[Sun Dec 17 05:29:33.304748 2017] [core:error] [pid 951:tid 1836053552] (13)Permission denied: [client 192.168.1.137:43006] AH00035: access to / denied (filesystem path '/media/pi/storage') because search permissions are missing on a component of the path

Saída de ls -ld /media /media/pi /media/pi/storage :

drwxr-xr-x  3 root root 4096 Nov 29 02:57 /media
drwxr-x---+ 3 root root 4096 Dec 17 05:28 /media/pi
drwxr-xr-x  4 pi   pi   4096 Dec 16 20:31 /media/pi/storage
    
por johndoe666 17.12.2017 / 04:48

1 resposta

1

Você também deve permitir que o Apache acesse esse diretório. Por padrão, o Apache só tem permissão para acessar /var/www e /usr/share ; esse acesso é concedido por blocos como este em /etc/apache2/apache2.conf :

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Assim, você deve adicionar um bloco semelhante em algum lugar da sua configuração do Apache, para conceder acesso a /media/pi/storage/root_folder/ :

<Directory /media/pi/storage/root_folder/>
        Require all granted
</Directory>

Se você já tiver um bloco <Directory /media/pi/storage/root_folder/> , por exemplo, no seu arquivo de configuração do host virtual, basta adicionar a diretiva Require all granted a ele.

Além disso, o log de erros mostra que o Apache (, por exemplo, , o usuário www-data ) não tem permissões de leitura ou pesquisa para um componente de /media/pi/storage . A saída de ls -ld /media /media/pi /media/pi/storage mostra que /media e /media/pi/storage têm 755 permissões, portanto, o culpado deve ser /media/pi . Como /media/pi está usando Listas de controle de acesso (conforme indicado pelo sinal + na saída de ls -ld ), damos www-data de leitura e permissões de pesquisa com

sudo setfacl -m u:www-data:rx /media/pi
    
por fkraiem 17.12.2017 / 05:16