Создание символической ссылки в текущих разрешениях доступа к веб-серверу

У меня есть статические ресурсы (mp3 и изображения), которые я хочу использовать на веб-сайте, размещенном на виртуальном хосте Apache, со следующими конфигурациями:

<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>

Ресурсы найдены во флэш-памяти по пути например:

/media/USER/KINGSTON/audio

Я создал символическую ссылку для вышеуказанного каталога в корневом каталоге сайта, используя ls -s, как показано ниже:

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

Однако попытка для доступа к любому ресурсу приводит к ошибке 403 Forbidden. Как я могу предоставить безопасные разрешения, позволяющие пользователю www-data получить к нему доступ?

0
задан 23 December 2017 в 18:02

3 ответа

Каковы разрешения каталога /media/USER/KINGSTON/audio? Помните, что Apache нуждается в + x в каталогах, которые он проводит.

Таким образом, /media/, /media/USER, /media/USER/KINGSTON/ и /media/USER/KINGSTON/audio должны иметь + x для мира, чтобы www-данные могли иметь доступ Это. Это можно сделать с помощью sudo chmod +x /path для каждой из приведенных выше каталогов. Если устройство KINGSTON не является файловой системой unix, вы можете столкнуться с проблемами там, так как у него нет традиционных списков ACL Unix.

Кроме того, я бы добавил его как обычную точку монтирования, если она постоянна решение. Для того, чтобы сделать это, взгляните на этот Q & amp; A

. В качестве короткого примера - обратите внимание, что # как подсказка обозначает, что команды выполняются с правами root, $ обозначает нормального пользователя.

/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
0
ответ дан 22 May 2018 в 15:57

Каковы разрешения каталога /media/USER/KINGSTON/audio? Помните, что Apache нуждается в + x в каталогах, которые он проводит.

Таким образом, /media/, /media/USER, /media/USER/KINGSTON/ и /media/USER/KINGSTON/audio должны иметь + x для мира, чтобы www-данные могли иметь доступ Это. Это можно сделать с помощью sudo chmod +x /path для каждой из приведенных выше каталогов. Если устройство KINGSTON не является файловой системой unix, вы можете столкнуться с проблемами там, так как у него нет традиционных списков ACL Unix.

Кроме того, я бы добавил его как обычную точку монтирования, если она постоянна решение. Для того, чтобы сделать это, взгляните на этот Q & amp; A

. В качестве короткого примера - обратите внимание, что # как подсказка обозначает, что команды выполняются с правами root, $ обозначает нормального пользователя.

/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
0
ответ дан 18 July 2018 в 00:35

Каковы разрешения каталога /media/USER/KINGSTON/audio? Помните, что Apache нуждается в + x в каталогах, которые он проводит.

Таким образом, /media/, /media/USER, /media/USER/KINGSTON/ и /media/USER/KINGSTON/audio должны иметь + x для мира, чтобы www-данные могли иметь доступ Это. Это можно сделать с помощью sudo chmod +x /path для каждой из приведенных выше каталогов. Если устройство KINGSTON не является файловой системой unix, вы можете столкнуться с проблемами там, так как у него нет традиционных списков ACL Unix.

Кроме того, я бы добавил его как обычную точку монтирования, если она постоянна решение. Для того, чтобы сделать это, взгляните на этот Q & amp; A

. В качестве короткого примера - обратите внимание, что # как подсказка обозначает, что команды выполняются с правами root, $ обозначает нормального пользователя.

/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
0
ответ дан 24 July 2018 в 17:15

Другие вопросы по тегам:

Похожие вопросы: