Samba Howto door Piethein Strengholt

Met Samba is het mogelijk om Bestandsdeling, zoals we dat onder windows gewend zijn, ook onder Linux/BSD te laten verlopen. Daarnaast ondersteund Samba ook domaincontrolling. Helaas nog geen active directory maar vanaf versie 3 zou dat ook mogelijk moeten zijn. Als laatste biedt Samba een uitstekende performance. Zelfs beter dan die van Windows! Samba is daarom ideaal om te gebruiken als een Windows file server! In deze howto richt ik mij op Versie 2.x

Om samba te installeren kan je het beste de laatste versie van Samba downladen van: http://www.samba.org/

Installatie Source:

Nadat we de laatste versie van samba hebben opgehaald gaan we deze uitpakken met het volgende commando:

tar zxvf samba*.tar.gz ( uitpakken )

Nu de bestanden uitgepakt zijn kunnen we de bestanden configureren waarna we ze compilen en installeren op het systeem. Geef je voorkeur aan een andere installatie map dan raad ik je aan om de readme van samba eens goed te lezen.

./configure
make
make install

Zo samba staat als het goed is op het systeem.

Nu moet ik eerst iets over samba vertellen voordat we verder kunnen gaan. Onder windows zijn we gewend net zoals unix met gebruikers te werken. Helaas is het niet zo dat als een gebruiker onder unix/linux wordt aangemaakt deze meteen met behulp van samba herkent wordt. Het makkelijkte is daarom om de homedirectory in de samba config file te laten verwijzen naar de /home directory. Als we dan een windows gebruiker willen aanmaken maken we de gebruiker eerst aan op het unix/linux systeem (met het commando 'adduser') waarna we ook de gebruiker met samba kunnen aanmaken. Wil je dit niet dan is een andere mogelijkheid om iedere keer handmatig mappen aan te maken waarna ook de samba gebruiker aangemaakt kan worden.

De volgende stap in deze howto is dat we samba gaan configureren. Alle samba instellingen staan centraal opgeslagen in een lokaal bestand (meestal /etc/smb.conf)

In dit bestand staan zaken zoals de Servernaam, Domeinnaam, Workgroup, etc. Het makkelijkste is even op de samba site te kijken hoe je een goede smb.conf maakt. Er zijn ook tooltjes beschikbaar die aan de hand van ingegeven waardes de juiste output leveren. Mocht je het bestand handmatig willen editen dan kan je dat doen met de volgende regel:

ln -s /usr/local/samba/lib/smb.conf /etc/smb.conf (symbolische link maken)
pico /etc/smb.conf

Mijn default zag er zo uit:

[global]

workgroup = QOD
server string = Samba Server
netbios name = Server
hosts allow = 192.168.0. 127.
; guest account = pcguest
security = user
; password server = <NT-Server-Name>
; password level = 8
; username level = 8
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
; unix password sync = Yes
; passwd program = /usr/bin/passwd %u
; passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
; username map = /etc/samba/smbusers
; include = /etc/samba/smb.conf.%m
; obey pam restrictions = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
; local master = no
; os level = 33
; domain master = yes
; preferred master = yes
; domain logons = yes
; wins support = yes
; wins server = w.x.y.z
; preserve case = no
short preserve case = no
; default case = lower
; case sensitive = no

[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775

[www]
comment = Apache WWW dir
path = /www/
public = yes
writable = yes
guest ok = yes
read only = no
browseable = yes

Tevens heeft samba ook een default of een sample beschikbaar gesteld, deze kan je ook perfect gebruiken.

Het volgende dat dient te gebeuren is dat gebruikers aan gemaakt moeten worden.

doe dat met:smbpasswd -a user (bv smbpasswd -a testgebruiker)

Handig is het om de home directory in de smb.conf te laten verwijzen naar /home/, zoals ik al eerder boven uitlegde en ook in mijn voorbeeld is te zien. Verder heb ik een www map geshared op het netwerk. Deze is te bereiken nadat de desbetreffende gebruikers (met chown) rechten hebben verkregen op deze map.

Om te testen of alles werkt kan je het volgende commando geven:

[root@server bin]# ./smbclient -L localhost
added interface ip=192.168.0.1 bcast=192.168.0.255 nmask=255.255.255.0
Password:
Anonymous login successful
Domain=[QOD] OS=[Unix] Server=[Samba 2.2.3a]

Verder is de map waar samba normaal staat: /usr/local/samba

/usr/local/samba/bin/findsmb (zoeken op netwerk)
/usr/local/samba/bin/smbd (samba-sharing starten)
/usr/local/samba/bin/nmbd (samba-named starten