Samba!

Het is alweer een paar jaar geleden dat ik iets met het deelprotocol voor windows deed. Met samba kun je met het smb/cifs-protocol een schijf of map of printer delen met windowsmachines terwijl de server op Linux draait. Tegenwoordig kun je met de kleine en goedkope Raspberry Pi snel een deling opzetten. Een eerste aanloop is te vinden bij https://www.raspberrypi.org/magpi/samba-file-server/ .
Een nadeel van Samba is de enorme hoeveelheid aan opties waarmee de fijnkorreligheid te beregelen valt. En eigenaardigheden waarop je verdacht moet zijn, als de schrijfwijze writeable en browseable.

Nadenken moet ik altijd wanneer het over de gebruikers en hun rechten gaat in de deling tussen windows & Linux.  Gebruikers van Samba moeten op het Linuxsysteem bekend zijn en daarenboven (al dan niet) een wachtwoord in de Samba-gebruikersbank hebben. En ook bekend zijn als gebruiker op de linuxbak. Zo niet, dan valt de bezoeker in de categorie other –  van ugo, user, group, other. Het is dan ook zaak om een gebruiker toe te voegen aan de bestaande groep users.

De gedeelde map smbTestPubliek heeft de volgende gebruikersrechten-instellingen:
drwxrwxr-x 2 root pi 4096 jun 24 15:25 smbTestPubliek
Dus root en pi mogen alles als eigenaar/gebruiker en groepslid en de rest van de wereld = other mag lezen en uitvoeren, maar niet schrijven.
Dan probeert een windowsgebruiker die niet voorkomt als gebruiker op de Raspberry Pi een bestand te openen en te bewerken op de Sambaserver. De aanwezige bestanden hebben de volgende instellingen:
-rw-rw—-  1 pi pi 17 jun 24 14:34 smbTest2rw.txt
-rwxr–r–   1  pi pi 295 jun 24 15:25 smbTest.txt

smbTest.txt moet wel gewoon geopend en gelezen kunnen worden. Wijzigingen kunnen wel in de tekst geschreven worden, maar het kan niet met deze wijzigingen onder dezelfde naam worden opgeslagen op die locatie. Daarvoor ontbreken de rechten. In dit geval biedt windows aan het dan maar lokaal op de windowsmachine op te slaan. Een geheel nieuw bestand maken op de Sambaserver zal ook niet lukken.

smbTest2rw.txt kan niet eens gelezen worden omdat het leesrecht (r) voor other ontbreekt voor dit bestand.

Maar hoe zijn de samba-instellingen voor deze share?
[publiekelijk]
path = /mnt/smbTestPubliek
comment = publiek toegankelijk ook voor gasten leesbaar
browseable = yes
writeable = yes
public = true   ## synoniem voor guest ok = yes
guest ok = yes   ## synoniem voor public = true

Wanneer de guest ok = no wordt ingesteld i.p.v. yes dan worden de bestanden onzichtbaar voor de gasten.

samba configuratie-opties voor guest e.a.
samba configuratie-opties voor guest e.a.

Je kunt eigenlijk stellen dat guest een synoniem is voor Public. Alleen wanneer de ongeregistreerde gebruiker ook toegang heeft is er echt sprake van Public.

Handige commando’s:
sudo pdbedit -w -L
pi:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:2E9C3080DAF66B3767BDE0C028EE597F:[U ]:LCT-5B2A2B3A:
herenweg:1002:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:A0B696758C5E89C29DCA9EEC3707FB13:[U ]:LCT-5B2A2217:
pi@damesteam:/media/pi/duplo $ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi

pi@damesteam:/media/pi/duplo $ sudo useradd -M beheerder -G users
De hoofdletter -M voorkomt dat er een thuismap/home-directory voor de gebruiker wordt aangemaakt. -G voegt de gebruiker toe aan de groep users.

Een bestaande gebruiker toevoegen aan een groep gaat zo:
sudo usermod -a -G examplegroup exampleusername

pi@damesteam:/media/pi/duplo $ sudo passwd beheerder
Nieuw UNIX-wachtwoord invoeren:
Nieuw UNIX-wachtwoord herhalen:
passwd: wachtwoord is met succes aangepast

pi@damesteam:/media/pi/duplo $ sudo smbpasswd -a beheerder
New SMB password:
Retype new SMB password:
Added user beheerder.
pi@damesteam:/media/pi/duplo $ sudo /etc/init.d/samba restart

pi@damesteam:/media/pi/duplo $ ls -l
totaal 132
drwxr-xr-x 3 pi users 4096 jun 20 21:25 geDeeld
drwx—— 2 root root 16384 sep 15 2017 lost+found
drwxrwxrwx 2 root pi 16384 jun 18 18:44 reserve
drwxrwxr-x 20 root pi 4096 nov 16 2017 winBackup
drwxrwxrwx 20 root pi 4096 nov 16 2017 windowsDocs

pi@damesteam:/media/pi/duplo $ sudo chmod 775 geDeeld
pi@damesteam:/media/pi/duplo $ ls -l
totaal 132
drwxrwxr-x 3 pi users 4096 jun 20 21:25 geDeeld
drwx—— 2 root root 16384 sep 15 2017 lost+found
drwxrwxrwx 2 root pi 16384 jun 18 18:44 reserve
drwxrwxr-x 20 root pi 4096 nov 16 2017 winBackup
drwxrwxrwx 20 root pi 4096 nov 16 2017 windowsDocs

pi@damesteam:/media/pi/duplo $ cat /etc/passwd
Laat de wachtwoordenlijst zien waarbij wij vooral kijken naar user ids boven de 1000.

P.S.: Los van de aanwijzingen die je kunt vinden bij raspberrypi.org vond ik https://howtoraspberrypi.com/create-a-nas-with-your-raspberry-pi-and-samba/ een prettig artikel.