Bind mount privilegierten Container

seppel786

New Member
Jul 31, 2022
5
0
1
Hallo zusammen,

wieder ein Proxmox Neuling mehr, der Eure Hilfe benötigt
Mein Name ist Daniel und ich beschäftige mich jetzt seit knapp 3 Wochen mit dem Thema Proxmox.
Daher steinigt mich bitte nicht all zu sehr, falls manch´ eine Frage etwas unqualifiziert sein sollte.

Mein aktuelles Vorhaben:
Ich würde gerne ein ZFS DataSet (/tank/movies) an einen unprivilegierten Container (bind)-mounten.
Im Detail liegt auf dem ZFS DataSet meine komplette Videosammlung ab, über welches ich in einem Plex LXC zugreifen möchte.

Ich habe mich versucht im Netz ein bisschen zu dem Thema schlau zu machen (auch in der Proxmox-Doku) aber ehrlich gesagt verstehe ich es nicht so wirklich.

Ich habe bereits auf dem Host als auch im Container jeweils einen (non root) User als auch eine Gruppe angelegt:

User (Auszug aus /etc/passed):
Bild1.jpg

Gruppe (Auszug aus /etc/group)
Bild2.jpg

Den Mount Point in der LXC Config File habe ich bereits gesetzt:
mp0: /tank/movies,mp=/movies

Wie müßte nun das Mapping innerhalb der Config File des LXC´s aussehen, dass ich über den Container auf das DataSet zugreifen kann?

Ich bin über jede Hilfe dankbar!

Viele Grüße und schönen Samstag,
Daniel
 
Standardmäßig werden alle User/Groups von UID/GID 0 bis 65535 im LXC nach UID/GID 100000 bis 165535 auf dem Host gemappt.
Statt das User-Remapping zu ändern könntest du z.B. auch einfach auf dem Host das Dataset von UID 100789 und GID 103500 besitzen lassen. Dann würde es im LXC UID 789 und GID 3500 gehören.
Wenn das Dataset aber auf dem Host einem bestimmten User/Gruppe gehören muss, weil du z.B. auch auf dem Host selbst mit den Daten arbeitest, dann müsste man das User-Remapping so abändern, dass da UID 789 zu 789 statt 100789 und GID 3500 zu 3500 statt 103500 gemappt wird.

Das könnte z.B. so aussehen für User-Remapping von UID 789->789 und GID 3500->3500:
VMID.conf:
Code:
lxc.idmap = u 0 100000 789
lxc.idmap = g 0 100000 3500
lxc.idmap = u 789 789 1
lxc.idmap = g 3500 3500 1
lxc.idmap = u 790 100790 64746
lxc.idmap = g 3501 103501 62035

In /etc/subuid hinzufügen (nicht ersetzen):
Code:
root:789:1

In /etc/subgid hinzufügen (nicht ersetzen):
Code:
root:3500:1
 
  • Like
Reactions: seppel786
Standardmäßig werden alle User/Groups von UID/GID 0 bis 65535 im LXC nach UID/GID 100000 bis 165535 auf dem Host gemappt.
Statt das User-Remapping zu ändern könntest du z.B. auch einfach auf dem Host das Dataset von UID 100789 und GID 103500 besitzen lassen. Dann würde es im LXC UID 789 und GID 3500 gehören.
Wenn das Dataset aber auf dem Host einem bestimmten User/Gruppe gehören muss, weil du z.B. auch auf dem Host selbst mit den Daten arbeitest, dann müsste man das User-Remapping so abändern, dass da UID 789 zu 789 statt 100789 und GID 3500 zu 3500 statt 103500 gemappt wird.

Das könnte z.B. so aussehen für User-Remapping von UID 789->789 und GID 3500->3500:
VMID.conf:
Code:
lxc.idmap = u 0 100000 789
lxc.idmap = g 0 100000 3500
lxc.idmap = u 789 789 1
lxc.idmap = g 3500 3500 1
lxc.idmap = u 790 100790 64746
lxc.idmap = g 3501 103501 62035

In /etc/subuid hinzufügen (nicht ersetzen):
Code:
root:789:1

In /etc/subgid hinzufügen (nicht ersetzen):
Code:
root:3500:1
Hallo Dunuin,

vielen Dank für deine schnelle Antwort und deine Erklärung. Jetzt ist es ein bisschen verständlicher :)
An sich müsste ich nach dem Mapping ja noch die Ownership noch auf dem Host ändern, korrekt?
Wenn ich das hoffentlich richtig verstanden habe, müsste das so funktionieren oder:

Code:
chown -R 3500:3500 /tank/movies

Statt das User-Remapping zu ändern könntest du z.B. auch einfach auf dem Host das Dataset von UID 100789 und GID 103500 besitzen lassen. Dann würde es im LXC UID 789 und GID 3500 gehören.

Wie würde die Umsetzung aussehen? Ich würde gerne beide Varianten auf meinem Proxmox Test-Server verproben und mich im Anschluss entscheiden, was für mich bzw. meinen Use-Case besser geeignet ist. Bei dieser Variante besteht aber nachträglich nicht die Möglichkeit einem weiteren LXC das DataSet zu bind-mouten (beispielsweise einem LXC mit jDownloader)?

Grüße,
Daniel
 
Last edited:
Wie würde die Umsetzung aussehen? Ich würde gerne beide Varianten auf meinem Proxmox Test-Server verproben und mich im Anschluss entscheiden, was für mich bzw. meinen Use-Case besser geeignet ist.
chown -R 100789:103500 /tank/movies und sowas wie chmod -R 770 /tank/movies wenn nur UID 789 + GID 3500 im unprivilegierten LXC vollen Zugriff auf "/movies" haben sollen, wenn du "/tank/movies" im Host nach nach "/movies" im LXC bind-mountest.
An sich müsste ich nach dem Mapping ja noch die Ownership noch auf dem Host ändern, korrekt?
Ja, aber nicht die Ownership vom Ordner den du bind-mounten willst, sondern von ALLEM auf dem root Dateisystem des LXCs was vorher UID 789 bzw GID 3500 gehört hat (weil die Dateien ja vor dem User Remapping UID 100789 bzw GID 103500 gehört haben und nach dem Ändern des Remapping dann UID 789 bzw GID 3500 auf diese zugreifen will, was dann ja aber nicht mehr geht. Also muss man das Root-Dateisystem des LXCs, wenn der LXC gestoppt ist, im Host mounten und alles was UID 100789 gehörte UID 789 geben und alles was GID 103500 gehörte GID 3500).
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!