Permission denied

wIllson

Benutzer
Mitglied seit
29. Mai 2020
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo Leute,
ggf kann mir hiermit jemand helfen. Ich versuche einen Erigon-Ethereumserver mittels Docker auf meiner Synology aufzusetzen (thorax/erigon).
Das Paket lässt sich herunterladen und starten. Das Directory /home/erigon/.local/share/erigon mappe ich in den Volume Einstellungen aufgrund der Größe auf ein eigenes Laufwerk /volume1/blockchain_data. Auf dieses kann der Prozess dann allerdings nicht zugreifen/schreiben und killt mit
catch panic err="mkdir /home/erigon/.local/share/erigon/chaindata: permission denied"
Das Problem lässt sich relativ leicht lösen, indem man dem Ordner von allen Vollzugriff gibt (Everyone: Allow Read/Write). Dies ist vom Rechtemanagement allerdings suboptimal.

Ich habe mich in das Dockerfile des Images eingelesen und gesehen, dass bei der Imageausführung ein User namens erigon angelegt wird mit UID=1000 GID=1000 , der entsprechend keine Rechte hat

# Setup user and group
#
# from the perspective of the container, uid=1000, gid=1000 is a sensible choice
# (mimicking Ubuntu Server), but if caller creates a .env (example in repo root),
# these defaults will get overridden when make calls docker-compose
ARG UID=1000
ARG GID=1000
RUN adduser -D -u $UID -g $GID erigon
USER erigon
RUN mkdir -p ~/.local/share/erigon
Wie kann ich explizit nur diesem User Zugriff auf das Share geben? Das anlegen eines gleichnamigen Users erigon funktioniert nicht. Das setzen von PUID/PGID environment variables auf einen existierenden User mit Rechten funktioniert auch nicht.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.405
Punkte
564
Ich glaube nicht, dass der Container einen User auf der DS anlegt.
Also normal macht man es so, dass man einen User anlegt, der Rechte hat, dann die UID/GID ermittelt und dem Image mitgibt. Wenn das nicht hinhaut, liegt das entweder an einer fehlerhaften Implementierung im Image, dem uralten Linux-Kernel der DS oder der uralten und verbastelten Docker Version von DSM.
Läuft der Ordner /volume1/blockchain_data mit ACL-Rechten?
 

wIllson

Benutzer
Mitglied seit
29. Mai 2020
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für die schnelle Antwort!!
Die Zugriffe sind laut FileStation
1702732297254.png
Der User erigon wird nur im Image selbst angelegt. Ein whoami ergibt im Terminal erigon.
1702732442463.png
Ich denke, das liegt daran, dass in der Implementierung des Images dies so vorgegeben wird (und entsprechend PUID/PGID keinen Effekt hat), denn in der dockerfile (https://github.com/ledgerwatch/erigon/blob/devel/Dockerfile) gibt es die erwähnte Passage
# Setup user and group
#
# from the perspective of the container, uid=1000, gid=1000 is a sensible choice
# (mimicking Ubuntu Server), but if caller creates a .env (example in repo root),
# these defaults will get overridden when make calls docker-compose
ARG UID=1000
ARG GID=1000
RUN adduser -D -u $UID -g $GID erigon
USER erigon
RUN mkdir -p ~/.local/share/erigon
Gibt es eine Möglichkeit, Vollzugriff nur für diesen Prozess zu geben (Zugriffe von anderen Prozessen auf die Daten wären sicherheitstechnisch ungünstig)?
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat