/ február 8, 2018/ docker/ 0 comments

Ezzel a módszerrel biztonságosabbá tehetjük a gépünket és a rajta futó konténereket. Két fájl játssza a főszerepet:

  • /etc/subuid
  • /etc/subguid

Például ha az elsőbe ezt írjuk:

testuser:231072:65536

akkor a 231072-es azonosító a konténerben 0-s azonosító lesz, a 231073-as azonosító az 1-es és így tovább. Így megcsináltuk, hogy a konténer folyamatának ne legyen különösebb joga a konténert futtató gépen.

Állítsuk be a docker démont, hogy használja a fent említetteket. A /etc/docker/daemon.json fájlba írjuk be:

{
“userns-remap”: “default”
}

Ha nem felhasználónevet írjunk hanem azt hogy default, akkor létrehoz a rendszer egy dockremap nevű felhasználót, aki a subuid és subgid fájlba is bekerül.

A

docker image ls

parancs kimenete ezután üres lesz. Ha elindítunk egy konténert, láthatjuk, hogy újra letölti a lemezképeket. Ezt azért teszi, mert már a dockremap felhasználó nevében történik minden, akinek saját könyvtára is van,

Eddig a /var/lib/docker könyvtárban tárolta a docker az adatokat. Most az itt található összes könyvtár nálam a 165536.165536 könyvtáron belül jött létre. A tulajdonosa és csoportja is 165536.

Ha ezek után egy konténert úgy akarunk elindítani hogy ne használja ezt a felhasználó névteret, fűzzük hozzá a –userns=host kapcsolót.

Ha ezt a névteret használjuk a következő korlátozásokkal számoljunk:

  • PID vagy NET névtér megosztása a hosttal
  • külső tároló meghajtók amik nem támogatják
  • –privileged használata a –userns=host nélkül

Ha könyvtárakat csatolunk be, ezentúl figyelembe kell venni a jogosultságokat. Az mknod parancsot sem tudjuk használni, mert nem vagyunk rendszergazdák a külső gépen

Share this Post

Leave a Comment

Ez a weboldal az Akismet szolgáltatását használja a spam kiszűrésére. Tudjunk meg többet arról, hogyan dolgozzák fel a hozzászólásunk adatait..