Я пытаюсь предоставить права на чтение для группы графана-облако
в файлы под /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 не применяются в первую очередь, как мы можем прочитать #эффективно:---
сразу после графана-агент
пользователя, но я не смог найти ни одного
Я попытался предоставить доступ пользователям вместо группы с теми же результатами.
Спасибо.