Die Anweisungen auf https://wiki.gentoo.org/wiki/LXD , die Sie erwähnen, sind korrekt, bedürfen jedoch möglicherweise einer weiteren Erläuterung.
Auf dem Host überprüfen Sie zunächst den Besitz des Verzeichnisses, in dem die Containerdaten gespeichert sind. Lauf
sudo ls -l /var/lib/lxd/containers
und überprüfen Sie den Eigentümer des Containers, für den Sie das Verzeichnis freigeben möchten. In meinem Fall waren das uid
und gid
beide 100000.
Verwenden Sie diese als Nächstes, um den Eigentümer des Verzeichnisses zu ändern, das Sie freigeben möchten:
sudo chown 100000:100000 /tmp/share_on_host
Teilen Sie das Verzeichnis mit dem Container so, wie Sie es in Ihrem Kommentar angegeben haben:
lxc config device add mycontainer sharedtmp disk \
path=/tmp/share_on_guest source=/tmp/share_on_host
Jetzt werden Sie im Container sehen, dass das Verzeichnis /tmp/share_on_guest
(ich würde nicht empfehlen, Ihr Verzeichnis zu mounten, /tmp
da dies vom System für andere Dinge verwendet wird und spezielle Berechtigungen hat) im Besitz von root ist. Ab hier können Sie chown
im Container verwenden, um den Eigentümer in den entsprechenden uid
und gid
für Ihren Benutzer im Container zu ändern .
Als Randnotiz: Nachdem Sie den Eigentümer des Containers auf z. B. einen Benutzer mit uid
33 uid
geändert haben, sehen Sie auf dem Host, dass es jetzt 100033 gibt, was durchaus Sinn macht.
lxc config device add confexample sharedtmp disk path=/tmp source=/tmp/shared
. Betrachtet man jedoch das Verzeichnis auf dem Container, sind der Eigentümer und die Gruppe für die darin enthaltenen Dateien auf "nobody" und "nogroup" gesetzt und der Mount ist schreibgeschützt.