Невозможно изменить каталог на символически связанный каталог - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть каталог на моем сервере Ubuntu 18.04

Он принадлежит www-data

/var/www/html/svg

drwxrwxr-x  2 www-data www-data  20K Apr 16 05:48 svg

Как пользователь "ubuntu", я создал символическую ссылку на каталог из / tmp, так как мне нужен веб-сервис для доступа к этому каталогу. Это работает как ожидалось.

pwd
/tmp

lrwxrwxrwx  1 ubuntu   ubuntu     17 Apr 15 09:11 svg -> /var/www/html/svg

Однако, если я вошел в систему как любой пользователь на сервере, попробуйте и перейдите в каталог с символическими ссылками

cd /tmp/svg

Я получаю следующую ошибку:

-bash: cd: /tmp/svg: Permission denied

И если я войду в настоящий директой / var / www / html / svg как любой пользователь, я могу без проблем это сделать.

К сожалению, это даже происходит от имени пользователя root.

Что может быть причиной этого? Я хочу иметь доступ к этой символической ссылке вместо того, чтобы явно указывать cd в каталог.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Вы можете изменить perms ссылки sym, например:

chmod -h 777 /tmp/svg  

Или владелец, в соответствии с вашим текущим каталогом, на который он указывает:

chown -h www-data:www-data /tmp/svg
1 голос
/ 16 апреля 2019

Попробуйте изменить владельца символьной ссылки, чтобы она соответствовала рабочему случаю

chown -h www-data:www-data /tmp/svg

Как указано в комментариях, обновленный ответ на флаг pass -h позволяет избежать разыменования ссылок.

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

...