Пользователь www-data не может получить доступ к общей папке Virtualbox через контейнер Docker

У меня есть виртуальная машина сервера Ubuntu, работающая на хосте Windows 10, где папка на внешнем жестком диске передается на виртуальную машину в точке монтирования /NextCloudStorage. Я могу получить доступ к этой папке от моего обычного пользователя и от root, добавив своего обычного пользователя в группу пользователей vboxsf.

Мой файл Docker Compose включает это для передачи через /NextCloudStorage в контейнер:

volumes:
      - nextcloud:/var/www/html
      - .:/code
      - /NextCloudStorage:/NextCloudStorage

При использовании docker exec -it nextcloud-app-1 bash я могу взаимодействовать с общей папкой в ​​режиме реального времени, используя такие команды, как cd /NextCloudStorage, mkdir test1 и т. д.

Моя проблема в том, что приложение, работающее в контейнере, не может получить доступ к этой папке, потому что оно работает как www-data. ls команды отображают папку как пустую, и при попытке создать элемент в папке я получаю сообщение об ошибке "permission denied".

Кто-нибудь знает, как предоставить пользователю www-data доступ к этой общей папке?

Извините за длинный пост, но я должен был рассказать об этом!

Спасибо!

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать добавить пользователя www-data в группу vboxsf

Для этого нам нужно выяснить идентификатор группы. In the virtual machine run

cat /etc/group

Вы увидите что-то вроде этого


Then in your container если этой группы нет создайте ее

В этом случае нам нужно использовать gid 115.

groupadd --gid 115 vboxsf

Затем добавьте эту группу в свой www-data user

usermod -aG vboxsf www-data

Обновлять: Попробуйте запустить следующую команду от имени root в контейнере

chmod -R 777 /NextCloudStorage

Благодарю вас! К сожалению, это не работает - при запуске usermod -aG vboxsf:x:997 www-data я получаю ошибку "group 'vboxsf:x:997' does not exist".

Taras Zagajewski 08.05.2022 12:14

Попробуйте только id, то есть 997

Tolis Gerodimos 08.05.2022 12:20

Есть вероятность, что нам нужно создать группу. я обновлю ответ

Tolis Gerodimos 08.05.2022 12:23

@TarasZagajewski Обновлен ответ, если группа не существует. Не стесняйтесь проверить еще раз

Tolis Gerodimos 08.05.2022 16:50

к сожалению пока ничего. Команды прошли нормально, и мой файл /etc/group в контейнере теперь показывает vboxsf:x:997:www-data, но я все еще не могу перечислить каталог с ls или использовать mkdir в качестве пользователя www-data, не получая permission denied.

Taras Zagajewski 09.05.2022 00:02

К сожалению, вы не против запустить ls -ld /NextCloudStorage . И выложить результаты?

Tolis Gerodimos 09.05.2022 04:01

Ага! Как www-data внутри контейнера я получаю 2621441 /NextCloudStorage/. Большое спасибо за настойчивость!

Taras Zagajewski 10.05.2022 00:45

Рад помочь. Я хотел спросить владельца и разрешения этого каталога, если это возможно.

Tolis Gerodimos 10.05.2022 04:12
ls -l /NextCloudStorage/ возвращает total 0, я относительно новичок в Linux, можете ли вы предоставить команду для запуска?
Taras Zagajewski 10.05.2022 04:53

Да, запустите: ls -ld /NextCloudStorage

Tolis Gerodimos 10.05.2022 05:05

Потрясающе, как root в контейнере я получаю drwxr-xr-x 2 root root 4096 May 8 05:06 /NextCloudStorage

Taras Zagajewski 11.05.2022 00:25

Добавил еще один подход @TarasZagajewski, попробуйте

Tolis Gerodimos 11.05.2022 10:39

Я знаю, что не должен комментировать это, но большое спасибо, это сработало! Я думал, что обнаружил и запустил подобную команду в своем собственном исследовании, но, видимо, это не так!

Taras Zagajewski 12.05.2022 01:30

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