Vreau să pot partaja un volum numit dintr-un container Docker peste Samba. Samba rulează pe sistemul gazdă ca serviciu nativ (nu în Docker). Containerul Docker rulează ca un UID specific, astfel încât toate fișierele din volumul său sunt, de asemenea, deținute de acel UID.
Sistemul gazdă nu are un utilizator echivalent pentru UID-ul în cauză.
Pentru a mă asigura că toate fișierele continuă să fie deținute de UID-ul corect, vreau să folosesc forțați utilizatorul
parametru pentru a forța Samba să acceseze toate fișierele cu UID. Iată configurația partajării:
[container]
comentariu = Stocare container Docker
cale = /var/lib/docker/volumes/appdata/_data
forță utilizator = 1001
utilizatori validi = # numele meu de utilizator aici
inscriptibil = da
Problema este că forțați utilizatorul
comanda nu pare să funcționeze, deoarece specifică ID-ul utilizatorului ca numeric. Nu pot accesa deloc partajarea (primesc un mesaj de acces refuzat de la Windows), așa că bănuiesc că este implicit pentru utilizatorul „nimeni”, care într-adevăr nu ar avea acces la folderul de date al containerului.
Documentația pentru Samba specifică faptul că forțați utilizatorul
parametrul „specifică un UNIX nume de utilizator care va fi atribuit ca utilizator implicit" (sublinierea mea). Acest lucru pare să indice că nu puteți utiliza un UID numeric ca "nume de utilizator".
Există o altă alternativă decât crearea manuală a unui utilizator pe sistemul gazdă care să se potrivească cu UID-ul? Există un risc potențial de securitate prin faptul că, dacă un alt container rulează sub același UID gazdă, un utilizator Samba ar putea să obțină cumva acces la datele altui container.