Рейтинг:0

ACL файлов Linux не сохраняются с использованием Docker для новых файлов/контейнеров, созданных демоном Docker.

флаг cn

Я пытаюсь предоставить права на чтение для группы графана-облако в файлы под /var/lib/докер/контейнеры:

#> ls /var/lib/docker/containers/ | голова -n1
0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4

#> setfacl -Rdm g:grafana-agent:rx /var/lib/docker/containers
#> setfacl -Rm g:grafana-agent:rx /var/lib/docker/containers

Выполняя этот фрагмент, он предоставляет разрешения для всех файлов и папок, которые уже существуют.

#> getfacl /var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
getfacl: удаление ведущего '/' из абсолютных путей
# файл: var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
# владелец: корень
# группа: корень
пользователь::rwx
группа::---
группа: графана-агент: г-х
маска::rx
Другие::---
по умолчанию: пользователь :: rwx
по умолчанию: группа:: ---
по умолчанию: группа: графана-агент: г-х
по умолчанию: маска:: г-х
по умолчанию:другое::---

Если я создам новый файл или папку внутри /var/lib/докер/контейнеры, acls правильно сохраняются:

#> mkdir /var/lib/docker/containers/foo
#> getfacl /var/lib/docker/containers/foo
getfacl: удаление ведущего '/' из абсолютных путей
# файл: var/lib/docker/containers/foo
# владелец: корень
# группа: корень
пользователь::rwx
группа::---
группа: графана-агент: г-х
маска::rx
Другие::---
по умолчанию: пользователь :: rwx
по умолчанию: группа:: ---
по умолчанию: группа: графана-агент: г-х
по умолчанию: маска:: г-х
по умолчанию:другое::---

Проблема возникает, когда создается новый контейнер, где списки управления доступом не применяются, как я ожидаю:

#> docker run -d busybox
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
getfacl: удаление ведущего '/' из абсолютных путей
# файл: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
# владелец: корень
# группа: корень
пользователь::rwx
группа::---
группа:графана-агент:r-x #эффективный:---
маска::---
Другие::---
по умолчанию: пользователь :: rwx
по умолчанию: группа:: ---
по умолчанию: группа: графана-агент: г-х
по умолчанию: маска:: г-х
по умолчанию:другое::---

#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
ls: невозможно открыть каталог '/var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/': разрешение отклонено

Если теперь я снова запускаю команду setfacl, ACL применяются к новому дереву файлов контейнера, и пользователь может читать файлы:

#> setfacl -Rm g:grafana-agent:rx /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8-json.log контрольные точки config.v2.json hostconfig.json имя хоста hosts mounts resolv.conf resolv.conf.hash
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
getfacl: удаление ведущего '/' из абсолютных путей
# файл: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
# владелец: корень
# группа: корень
пользователь::rwx
пользователь: графана-агент: г-х
группа::---
группа: графана-агент: г-х
маска::rx
Другие::---
по умолчанию: пользователь :: rwx
по умолчанию: пользователь: графана-агент: г-х
по умолчанию: группа:: ---
по умолчанию: группа: графана-агент: г-х
по умолчанию: маска:: г-х
по умолчанию:другое::---

Что-то не так в моем процессе? Кажется, что acls не применяются в первую очередь, как мы можем прочитать #эффективно:--- сразу после графана-агент пользователя, но я не смог найти ни одного Я попытался предоставить доступ пользователям вместо группы с теми же результатами.

Спасибо.

Рейтинг:1
флаг tv

ACL только расширяют стандартные разрешения POSIX. эффективный разрешение здесь --- потому что разрешения POSIX для группы --- и (по умолчанию) маска ACL также ---.

Вместо этого вы можете сделать следующее:

  1. Измените владельца каталога: например. корень chown: графана-агент /var/lib/docker/containers
  2. Установите его разрешения с помощью с бит таким образом, что все новые файлы (и каталоги), созданные внутри, будут принадлежать той же группе, которая является владельцем каталога: например. chmod g+rs /var/lib/docker/containers

Возможно, вам потребуется изменить разрешения группы для /var/библиотека/докер тоже: chmod o+x /var/lib/докер (это позволит каждому «другому» пользователю просматривать файлы в каталоге и, таким образом, получать доступ к контейнеры подпапка)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.