Версии
- ОС хоста: Debian 4.9.110
- Версия Docker: 18.06.1-ce
Сценарий
У меня есть каталог, в котором несколько пользователей (user-a
и user-b
) имеют доступ на чтение / запись через общее членство в группе (shared
), настроенное с помощью chown
:
/media/disk-a/shared/$ ls -la
drwxrwsr-x 4 user-a shared 4096 Oct 7 22:21 .
drwxrwxr-x 7 root root 4096 Oct 1 19:58 ..
drwxrwsr-x 5 user-a shared 4096 Oct 7 22:10 folder-a
drwxrwsr-x 3 user-a shared 4096 Nov 10 22:10 folder-b
UIDs &GID следующие:
uid=1000(user-a) gid=1000(user-a) groups=1000(user-a),1003(shared)
uid=1002(user-b) gid=1002(user-b) groups=1002(user-b),1003(shared)
Релевантный /etc/group
выглядит следующим образом:
shared:x:1003:user-a,user-b
Когда su
входит в обоих пользователей, файлы могут создаваться, как и ожидалось, в общем каталоге.
Общий каталог подключен к контейнеру Docker через mount, привязанный к /shared/
.Контейнер Docker запускается как user-b
(с использованием параметра --user "1002:1002"
)
$ ps aux | grep user-b
user-b 1347 0.2 1.2 1579548 45740 ? Ssl 17:47 0:02 entrypoint.sh
id
изнутри контейнера печатает следующий, на мой взгляд, неплохой результат:
I have no name!@7a5d2cc27491:/$ id
uid=1002 gid=1002
Кроме того, ls -la
идеально отражает ее хост-систему:
I have no name!@7a5d2cc27491:/shared ls -la
total 16
drwxrwsr-x 4 1000 1003 4096 Oct 7 20:21 .
drwxr-xr-x 1 root root 4096 Oct 8 07:58 ..
drwxrwsr-x 5 1000 1003 4096 Oct 7 20:10 folder-a
drwxrwsr-x 3 1000 1003 4096 Nov 10 20:10 folder-b
Проблема
Внутри контейнера я ничего не могу записать в общий каталог.Для touch test
я получаю следующее, то есть:
I have no name!@7a5d2cc27491:/shared$ touch test
touch: cannot touch 'test': Permission denied
Я могу записать в каталог, который напрямую принадлежит user-b
(пользователь и группа) и подключен к контейнеру... Просто членство в группе кажется каким-то образом вообще не уважаемым.
Я рассматривал такие вещи, как переназначение пространства имен пользователя и другие вещи, но, похоже, это решения для чего-то, что здесь не применяется,Что мне не хватает?