Crie um link simbólico nas permissões de raiz do documento do servidor web atual

0

Eu tenho recursos estáticos (mp3s e imagens) que desejo usar em um site hospedado no host virtual Apache com as seguintes configurações:

<VirtualHost *:80>
ServerName example.com
    serverAlias myexample.loc   
    DocumentRoot /home/USER/www/yii2/web
    <Directory "/home/USER/www/yii2/web">
        AllowOverride All
        Options Indexes FollowSymLinks MultiViews
        Require all granted
    </Directory>
</VirtualHost>

Os recursos são encontrados na memória flash em um caminho como o seguinte:

/media/USER/KINGSTON/audio

Eu criei um link simbólico para o diretório acima na raiz de documentos do site usando ls -s da seguinte forma:

sudo ln -s /media/USER/KINGSTON/audio /home/USER/www/yii2/web 

No entanto, tentar acessar qualquer recurso leva ao erro 403 Forbidden . Como eu poderia dar permissões seguras que permitem ao usuário do www-data acessá-lo?

    
por SaidbakR 23.12.2017 / 15:02

1 resposta

0

Quais são as permissões do diretório /media/USER/KINGSTON/audio ? Lembre-se que o Apache precisa de + x nos diretórios que ele percorre.

Assim, /media/ , /media/USER , /media/USER/KINGSTON/ e /media/USER/KINGSTON/audio precisam ter + x para o mundo para que www-data possa acessá-lo. Isso pode ser feito com sudo chmod +x /path , para cada um dos diretórios acima. Se o dispositivo KINGSTON não for um sistema de arquivos unix, você poderá enfrentar desafios, pois ele não possui as tradicionais ACLs Unix.

Além disso, eu provavelmente adicionaria isso como um ponto de montagem normal se for uma solução permanente. Para saber como fazer isso, dê uma olhada nestas perguntas e respostas

Como um pequeno exemplo - note que # como prompt denota comandos executados como root, $ denota usuário normal.

/tmp # mkdir foo
/tmp # chmod 754 foo
/tmp # cd foo
/tmp/foo # mkdir bar
/tmp/foo # chmod 755 bar
/tmp/foo # ls -la
total 20
drwxr-xr--  3 root root  4096 Dec 24 14:24 .
drwxrwxrwt 57 root root 12288 Dec 24 14:23 ..
drwxr-xr-x  2 root root  4096 Dec 24 14:24 bar
# Note that the directory bar has read and execute permissions for everyone, but /tmp/foo has only read for others than group and user.
/tmp/foo # echo "foo" > bar/foo 
$ cd /tmp/foo/bar
bash: cd: /tmp/foo/bar: Permission denied
$ cat /tmp/foo/bar/foo
cat: /tmp/foo/bar/foo: Permission denied
/tmp/foo # chmod +x . #Add execute permission for world to /tmp/foo
$ cat /tmp/foo/bar/foo
foo
    
por vidarlo 24.12.2017 / 14:31