ZFS disk als SMB Share

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Leaplasher
  • Registratie: Maart 2025
  • Niet online
Ben bezig een Proxmox omgeving op te zetten voor wat VMs.
Had gedacht Home Assistant data over 2 disks te verdelen. OS + core zaken op de NVME disk.
En de data (media, etc) op een 2e SSD. Helaas gaat dat niet en kun je alleen netwerk-shares toevoegen (ook voor Music Assistant).

Derhalve uitgekomen op een ZFS disk die ik dan via een SMB share vanaf Proxmox zelf ontsluit.

Deze guide gevolgd, maar dat resulteert nog niet in een werkende oplossing:
https://thinkinggeek.stew...-share-on-a-proxmox-host/
Feitelijk heb ik deze code in de Proxmox shell geplakt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
apt install samba smbclient cifs-utils

zfs create -o mountpoint=/data-pool/data data-pool/data
zfs set sharesmb=on data-pool/data

nano /etc/samba/smb.conf

[data-pool]
    comment = Share for Data via Network
    create mask = 0775
    force create mode = 0775
    security mask = 0775
    force security mode = 0775

    directory mask = 0775
    force directory mode = 0775
    directory security mask = 0775
    force directory security mode = 0775

    inherit permissions = Yes
    path = /data-pool/data
    read only = no
    writeable = yes
    valid users = @smbshare
    guest ok = no
 
CTRL-X | Yes

groupadd smbshare
chgrp -R smbshare /data-pool/data
chmod 2770 /data-pool/data

useradd -M -s /sbin/nologin homeassistant
usermod -aG smbshare homeassistant
smbpasswd -a homeassistant
smbpasswd -e homeassistant

useradd -M -s /sbin/nologin musicassistant
usermod -aG smbshare musicassistant
smbpasswd -a musicassistant
smbpasswd -e musicassistant

systemctl restart nmbd
smbcontrol all reload-config


wanneer ik in de logs kijk, geeft deze als error terug (wanneer ik vanaf de HA omgeving de share wil mappen):

code:
1
2
[2025/04/24 12:16:37.343425,  0] ../../source3/smbd/smb2_service.c:168(chdir_current_service)
  chdir_current_service: vfs_ChDir(/data-pool/data) failed: Permission denied. Current token: uid=1000, gid=1001, 2 groups: 1001 1000


Er lijkt dus wat mis te gaan qua rechten.
Maar waar 't em in zit, wordt me niet helemaal helder, om nou alles op 777 te zetten is ook weer zoiets.
NTFS met AD groep en rechten toekennen is waar ik vandaan kom, dit is wat nieuw. ;)
Username/ww is een copy/paste uit mijn wachtwoord manager.

Wie ziet zo 1,2,3 waar ik nog even in mag duiken?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Leaplasher
  • Registratie: Maart 2025
  • Niet online
Heb alles maar eens helemaal overview gedaan, helaas geen verschil in resultaat als hiervoor omschreven. Ergens zit dus een fout(je). Ik staar me er blind op. Wie bied uitkomst?

Acties:
  • 0 Henk 'm!

  • eelco_v
  • Registratie: November 2009
  • Laatst online: 18:55
My 2cnts :

als ik het goed lees staat er, zoals jezelf aangeeft, dat er permissies ontbreken ;

Ik lees het volgende : de token die je nu dus gebruikt heeft :

Current token: uid=1000, gid=1001, 2 groups: 1001 1000

een User_id = 1000,
een Group_id = 1001

echter deze volgorde lijkt vervolgens omgekeerd te zijn : 2 groups: 1001 1000

dus zou het kunnen zijn dat :

User_id = 1001;
Group_id = 1000;

Ben slechts simpele tweaker, dus dit zou mijn onderzoeks hypothese / test zijn ...


sterkte

eelcoV


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

@eelco_v, nah, dat met de groepen is normaal. Je hebt user IDs en group IDs en standaard heb je als eerste gebruiker een user id van 1000, met een group id van 1000. Beide dezelfde naam. Zoals het er staat, 1001 gevolgd door 1000, wil niks anders zeggen dan dat de primaire groep 1001 is voor de gebruiker waar het om gaat. Gezien de volgorde van de commando's, klopt dat ook wel. Want 'smbshare' is eerder aangemaakt dan de gebruiker 'homeassistant'. Als 'musicassistant' had ingelogd, had je waarschijnlijk 1002 en 1000 gezien.

@Leaplasher, welke exacte rechten staat er op /data-pool en /data-pool/data? Met je commando's heb je het 2770 gegeven. Samba draait als daemon ook onder een bepaalde gebruiker en die gebruiker moet wel door de mappenstructuur kunnen. Zet eens de execute bit op die twee mappen voor 'other', dus 'chmod o+x /data-pool/data'. Herstarten van Samba is niet nodig. Wat gebeurt er dan?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • eelco_v
  • Registratie: November 2009
  • Laatst online: 18:55
@Hero .. , voor het geval dat we langs elkaar praten : ik dacht te zien in het aanbieden van de unieke ID volgorde verschilt. Dus eerst UID en daarna de GUID, in de foutmelding zie je dat
de UID niet 1000 is maar 1001 en vervolgens dat de aangeboden GUID niet 1001 maar 1000 is.

Bedankt voor jouw feedback; het was ook enkel een mogelijke gedachtenloop ...

Ik dacht nl. dat een Unieke User ID dus eenzelfde "Unieke Group ID" juist per defenitie uitsluit ..dat deze dus niet gelijk zijn. Daarnaast ging mij het ook nog om de volgorde waarop een tweetal ID's aangeboden worden ; zeg eerst UID , daarna GUI , dan token waarin dus ook de volgorde eerst UID moet zijn een daarna pas GUID en niet bijv. GUID en dan pas UID

In iedergeval sterkte met het te debuggen

[ Voor 21% gewijzigd door eelco_v op 25-04-2025 21:31 ]

eelcoV


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

@eelco_v, in de configuratie staat 'valid users = @<groepsnaam>'. Wanneer er geen @ gebruikt wordt, betreft het een gebruiker, met is het een groep. De IDs die getoond worden zijn de GIDs van de betreffende gebruiker. Omdat er gematched wordt op groep, zal het token de GIDs bevatten. Eerst de primaire groep, daarna de overige.

Het is begrijpelijk dat je zou denken dat er een UID staat ivm '1000', maar groep en user IDs mogen overlappen en doen dat veelal ook. Dat maakt het ook zo makkelijk om in verwarring gebracht te worden.

[ Voor 4% gewijzigd door Hero of Time op 25-04-2025 23:37 ]

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • eelco_v
  • Registratie: November 2009
  • Laatst online: 18:55
@ Hero ; helder, dank voor deze inhoudelijke reactie. Hopelijk heeft onze TS nu wel een richting weet waarin te zoeken. Jouw uitleg geeft mij inzicht in mijn foutieve veronderstelling. Uitgaande van bijvoorbeeld van de ene array (key/pair) naar de "andere" zocht ik het in de volgorde van deze mijn veronderstelde key/pair ... Ik vind overigens mijn eigen conclusie ook al niet consistent want er wordt tenslotte gesproken over twee groepen.

Weer wat geleerd over UID's, voor slechts 2cts, das is een goeie deal vlgs mij .

Top !,

fijn weekend

@Leaplasher, was niet mijn bedoeling jouw topic van enige extra ruis te voorzien.
Denk dat conclusie kan zijn dat Hero's suggestie meer hout gaat snijden ...

eelcoV


Acties:
  • 0 Henk 'm!

  • eelco_v
  • Registratie: November 2009
  • Laatst online: 18:55
@Leaplasher,

mijn auti-brein ( en een koude rakker) houden van ene intellectuele uitdaging. Vandaar mijn mee denken als amateur tweaker.

In beschreven scenario's die aangehaald worden, staat expliciet dat rechten voor de auteur tevens een issue waren...

"UPDATE: I’ve abandoned this setup. Despite the fact that this works here, later it is a nightmare to deal with permissions."

In datzelfde artikel staat nog een "extra create" welke ik hier niet terug zie in jouw copy van input into shell ; nl
"zfs create <zfs pool name>/<share directory>",

niet uit behoefte wijsneus te spelen, neem ik aan voor het gemak dat deze promt toch tevens is uitgevoerd qua volgorde van ondernomen stappen ...

Vervolgens zie ik in jouw set up een gedeelte van Mask opdrachten terug komen, welke specifiek rechten gerelateerd zijn ... Het voorbeeld wat aangehaald wordt van Debian gaat uit van het aanmaken van twee mappen; een prive en een van publieke map (om te delen) ...

Zonder intentie, of emotie of onderschatting van jouw vaardigheden ; heb je deze configuratie/set up zoals beschreven ook al getest, dus met een twee mappen structuur en die specifieke opzet van rechten ? ...

Ik doel op artikel : https://computingforgeeks...re-samba-share-on-debian/ ...

Reden van mijn vraag, wellicht overbodig, is wanneer die setup wel degelijk werkt dan ligt tevens voor de hand dat enig probleem in de masking opdrachten / sequentie van deze configuratie zit.
Vanaf hier kun je prompt gewijs testen welke implicatie mask opdrachten hebben.

Overbodig : gezien het gegeven (de foutmelding) dat er geklaagd wordt over juist die rechten ....

Bovenstaande brain-fart is onderhavig aan enkele factoren, maar zou wellicht toch een richting van het zoek en test-werk kunnen duiden.

vitalae out

eelcoV


Acties:
  • 0 Henk 'm!

  • Leaplasher
  • Registratie: Maart 2025
  • Niet online
@eelco_v wow wat tof! Dank je wel! :)
Heb heel die Update aan de start van die site niet eens gezien. Doe ik een keer aan RTFM, mis ik alsnog wat cruciaals. ;)

Met de link die je gaf is het gelukt!
Heb alles nogmaals helemaal opnieuw gedaan (risico vermijding dat er onderwater nog wat zou sluimeren).

De ZFS gemount via Proxmox (via de GUI), dit keer als 'data' in de root.
Per mapje een eigen groep, zodat ze niet bij elkaar kunnen loeren.
Vervolgens de volgende commando's afgevuurd in de shell, waarbij ik uit de link die je gaf, alleen 'private' heb toegepast. Aan public geen behoefte om in te zetten.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
mkdir /data/homeassistant
mkdir /data/musicassistant
mkdir /data/homeassistant.backup

apt install samba smbclient cifs-utils -y
nano /etc/samba/smb.conf

[homeassistant]
   comment = Home Assistant
   path = /data/homeassistant
   writable = yes
   guest ok = no
   valid users = @smbshare.ha
   force create mode = 770
   force directory mode = 770
   inherit permissions = yes
   
[musicassistant]
   comment = Music Assistant
   path = /data/musicassistant
   writable = yes
   guest ok = no
   valid users = @smbshare.ma
   force create mode = 770
   force directory mode = 770
   inherit permissions = yes

[homeassistant.backup]
   comment = Home Assistant (Local) Backup
   path = /data/homeassistant.backup
   writable = yes
   guest ok = no
   valid users = @smbshare.ha.bk
   force create mode = 770
   force directory mode = 770
   inherit permissions = yes

groupadd smbshare.ha
groupadd smbshare.ma
groupadd smbshare.ha.bk
   
chgrp -R smbshare.ha /data/homeassistant
chgrp -R smbshare.ma /data/musicassistant
chgrp -R smbshare.ha.bk /data/homeassistant.backup

chmod 2770 /data/homeassistant
chmod 2770 /data/musicassistant
chmod 2770 /data/homeassistant.backup

useradd -M -s /sbin/nologin homeassistant
useradd -M -s /sbin/nologin musicassistant
useradd -M -s /sbin/nologin homeassistant.backup

usermod -aG smbshare.ha homeassistant
usermod -aG smbshare.ma musicassistant
usermod -aG smbshare.ha.bk homeassistant.backup

smbpasswd -a homeassistant
smbpasswd -a musicassistant
smbpasswd -a homeassistant.backup

smbpasswd -e homeassistant
smbpasswd -e musicassistant
smbpasswd -e homeassistant.backup


systemctl restart nmbd


Kon het allemaal prima mounten binnen Home Assistant & Music Assistant.
Ook vanuit Windows netjes te mappen als drive. :)

Nogmaals dank!

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Nu heb je extra groepen gemaakt en de gebruikers individueel in elke aparte groep. Je zet vervolgens in je config dat die aparte groep in de share mag. De groepen bevatten allemaal maar 1 gebruiker. Het doel van groepen en het toewijzen van groepen aan shares is zodat je met meerdere gebruikers in een share mag.

Omdat de groepen niet meer dan 1 lid heeft, is de groep in feite nutteloos. Bij het maken van een gebruiker wordt er tevens al een groep gemaakt met dezelfde naam als de gebruiker. Zie maar het resultaat van 'id homeassistant'.

Als de shares toch maar voor 1 gebruiker zijn bedoelt, kan je net zo goed de gebruiker zelf opgeven in de configuratie. Dat scheelt effectief weer een extra lookup voor het systeem. Dat merk je niet op deze schaal, maar wel als je het met een flink grotere aantal gebruikers te maken hebt. Maar het maakt je config ook wat makkelijker nalezen. Want verwijzen naar een groep zorgt er weer voor dat je moet gaan achterhalen wie er ook alweer in die groep zitten en als het doel is dat het maar 1 gebruiker is, werp je eigenlijk een kleine mistbank voor jezelf op.
Waarom via Rome naar Parijs, als er ook een directe route is. ;)

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Leaplasher
  • Registratie: Maart 2025
  • Niet online
I know en dit was heel bewust. ;)
Werk liever met groepen, ik kan zo ook zien aan welke groepen een user is toegekend.
Niet dat het op deze schaal implciaties heeft, ben het met je eens dat 't ook op user basis had gekund.

Iets met beroepsdeformatie waarin ik altijd (applicatie)groepen/rollen hanteer.
Zo'n gekloot anders met een nieuwe medewerker. Die exact hetzelfde moet als de bestaande medewerker en dat je dan mag gaan uitzoeken waar pietje ook alweer allemaal individuele toegang tot had.
(Omdat je voorganger dat ooit zo handig vond).

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Ik ken 't, ben ook beheerder van beroep en we hebben ook liever een groep op een rol dan een gebruiker. Maar voor een systeem als deze is die complexiteit niet van toepassing en als het niet nodig is, houd ik het liever zo simpel mogelijk.

Commandline FTW | Tweakt met mate

Pagina: 1