Позвольте пользователю контейнера LXC писать как внешний пользователь в смонтированный каталог

Извинения за заголовок, установка на самом деле довольно проста. У меня есть хост с позвонившим пользователем oli и названный каталог /media/steve/incoming это oli может read-write-execute в. В этом у меня есть привилегированный контейнер LXC, работающий под корнем. /media/steve/incoming смонтирован в контейнере как /incoming/ с:

lxc.mount.entry = /media/steve/incoming incoming none bind 0 0

В контейнере у меня есть веб-сервер, работающий как www-data. Это должно смочь записать в /incoming/.

Каковы мои опции здесь? Я могу думать о нескольких идеях, но у них или есть довольно серьезные оборотные стороны, или я не знаю, как реализовать их:

  • Я мог изменить своего демона для выполнения как корень в контейнере, но я буду скорее, он не сделал. Корневые файлы записи странно в каталоге (они выходят как root:oli- принадлежавший на хосте).

  • Я могу отобразить контейнер -www-data иметь хост -oli privs в файловой системе? Это предоставило бы им доступ к хосту? oli не учетная запись unprivaliged. Это может нанести реальный ущерб.

  • Я могу просто связать - монтируют его таким способом, которым кто-либо в контейнере может записать в поступление/, и доступ похож, это прибывает из хоста -oli?

  • ACL какая-либо справка здесь?

6
задан 12 December 2015 в 04:56

1 ответ

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

Это преобразовывается в число идентификатора пользователя в атрибуте файла.

Я могу отобразиться container-www-data иметь host-oli privs в файловой системе? Это предоставило бы им доступ к хосту? oli не учетная запись unprivaliged. Это может нанести реальный ущерб.

Можно выполнить следующую команду на хосте для создания lxc контейнер www-data пользователь может записать /incoming папка.

$ sudo chown oli /media/steve/incoming
$ sudo setfacl -m u:www-data:rwx /media/steve/incoming

/media/steve/incoming связывается один для /incoming из lxc контейнер.

И /media/steve/incomingвладелец уже принадлежит oli.

Так хост oli может записать это непосредственно и контейнер www-data пользователь также может записать это непосредственно.

И если setfacl команда не, существует в хосте, можно установить его со следующей командой.

$ sudo apt-get install acl

Хост www-data и containter's www-data может использовать число идентификатора пользователя различия, Таким образом, можно совместно использовать/media/steve/incoming для идентификатора www-пользователя-данных Контейнера как после.

Сначала, получите количество идентификатора пользователя www-data на контейнере.

$ cat /etc/passwd | grep "^www-data:" | awk -F ":" '{print $3}'

Затем это покажет число, если контейнеру назовут пользователя www-data, userid из www-data. Во втором, атрибуте файла набора с acl как следующий хост.

$ sudo setfacl -m u:<got_number_above>:rwx /media/steve/incoming

Затем это будет работать на контейнер.

Можно получить больше справки для ACL от FilePermissionsACLs

3
ответ дан 23 November 2019 в 08:05

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

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