Puncte:0

ACL-urile fișierelor Linux nu sunt păstrate folosind Docker pentru fișiere/containere noi create de demonul Docker

drapel cn

Încerc să acord permisiuni de citire grupului grafana-nor la fișierele de sub /var/lib/docker/containers:

#> ls /var/lib/docker/containers/ | cap -n1
0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4

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

Executând acest fragment, acordă permisiuni tuturor fișierelor și folderelor care există deja.

#> getfacl /var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
getfacl: Eliminarea „/” de început din numele căilor absolute
# fișier: var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
# proprietar: root
# grup: rădăcină
utilizator::rwx
grup::---
grup:grafana-agent:r-x
masca::r-x
alte::---
implicit:utilizator::rwx
implicit:grup::---
default:group:grafana-agent:r-x
default:mask::r-x
implicit:altul::---

Dacă creez un nou fișier sau folder în interior /var/lib/docker/containers, acls-urile sunt păstrate corect:

#> mkdir /var/lib/docker/containers/foo
#> getfacl /var/lib/docker/containers/foo
getfacl: Eliminarea „/” de început din numele căilor absolute
# fișier: var/lib/docker/containers/foo
# proprietar: root
# grup: rădăcină
utilizator::rwx
grup::---
grup:grafana-agent:r-x
masca::r-x
alte::---
implicit:utilizator::rwx
implicit:grup::---
default:group:grafana-agent:r-x
default:mask::r-x
implicit:altul::---

Problema vine atunci când este creat un container nou, unde acls pare că nu sunt aplicate așa cum mă aștept:

#> docker run -d busybox
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
getfacl: Eliminarea „/” de început din numele căilor absolute
# fișier: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
# proprietar: root
# grup: rădăcină
utilizator::rwx
grup::---
grup:grafana-agent:r-x #eficient:---
masca::---
alte::---
implicit:utilizator::rwx
implicit:grup::---
default:group:grafana-agent:r-x
default:mask::r-x
implicit:altul::---

#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
ls: nu se poate deschide directorul „/var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/”: Permisiune refuzată

Dacă acum rulez din nou comanda setfacl, acls sunt aplicate noului arbore de fișiere container și utilizatorul poate citi fișierele:

#> setfacl -Rm g:grafana-agent:rx /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8-json.log puncte de control config.v2.json hostconfig.json hostname hosts montează rezolv.conf.ha resolv.
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
getfacl: Eliminarea „/” de început din numele căilor absolute
# fișier: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
# proprietar: root
# grup: rădăcină
utilizator::rwx
utilizator:grafana-agent:r-x
grup::---
grup:grafana-agent:r-x
masca::r-x
alte::---
implicit:utilizator::rwx
default:user:grafana-agent:r-x
implicit:grup::---
default:group:grafana-agent:r-x
default:mask::r-x
implicit:altul::---

Este ceva în neregulă în procesul meu? Se pare că acls nu sunt aplicate în primul rând, după cum putem citi #efectiv:--- Alături de grafana-agent utilizator, dar nu am găsit niciunul Am încercat să acord acls utilizatorilor în loc de grup, cu aceleași rezultate.

Mulțumesc.

Puncte:1
drapel tv

ACL-urile extind doar permisiunile standard POSIX. The efectiv permisiunea aici este --- deoarece permisiunile POSIX pentru grup sunt --- și masca ACL (implicit) este, de asemenea ---.

În schimb, puteți face următoarele:

  1. Schimbați proprietatea directorului: de ex. chown root:grafana-agent /var/lib/docker/containers
  2. Setați-i permisiunile cu s bit astfel încât toate fișierele noi (și directoarele) create în interior vor aparține aceluiași grup care este proprietarul directorului: de ex. chmod g+rs /var/lib/docker/containers

Poate fi necesar să modificați permisiunile de grup pentru /var/lib/docker de asemenea: chmod o+x /var/lib/docker (acest lucru va permite fiecărui „celălalt” utilizator să listeze fișierele din director și astfel să acceseze fișierul containere subdosar)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.