Samba is een protocol waarmee je bestanden kunt sharen tussen verschillende besturingssystemen. Je kunt er bestanden en printers mee delen tussen Linux, Windows9x en MacOS. Samba is ook de naam van een stuk software onder Linux dat een client en een server die volgens dit protocol werken kent.
Op de volgende URL's kun je meer informatie over Samba vinden:
Je kunt samba downloaden op de officiële homepage, maar hij zit waarschijnlijk ook bij je distributie.
Om een verbinding met een
sambaserver te maken (en verbreken) zijn er 3 programma's: smbmount,
smbumount en smbclient. Een directory die wordt geshared op
een samba-server of Windowsbak mount je net als een partitie van je eigen harde
schijf. Je hebt er dus ook een mount point voor nodig. Maak bijv. /mnt/samba
aan. Je mount daar dan een gesharede directory onder mounten met
smbmount //machinenaam/directory /mnt/samba. Er wordt dan gevraagd om
een wachtwoord. Als er guest access is (dus als er geen wachtwoord nodig is) kun
je daar simpelweg op enter drukken. Je kunt in dat geval ook de optie -o guest
meegeven om niet om een wachtwoord te laten vragen. Om een overzicht van
gesharede directories op een bepaalde machine te krijgen kun je
smbclient -L //machinenaam gebruiken. Wil je een directory weer
unmounten, dan gebruik je smbumount /mnt/samba. Smbumount mislukt
echter als de machine waar de gesharede directory op stond in de tussentijd werd
uitgezet of is gecrashed. In dat geval werkt alleen umount /mnt/samba
nog. Ik heb verschillende keren gehad dat samba pas na lange tijd doorhad dat de
verbinding er niet meer is. Tot die tijd werkte smbumount of umount niet. Ze
bleven zelf eindeloos hangen. Ook ls gebruiken in de directory resulteerde in
een hangen ls. Zeer irritant was dat...Maar na bepaalde tijd is er
schijnbaar een timeout en gaat alles weer goed.
Standaard kun je alleen als root smbmount gebruiken. Je wilt dat waarschijnlijk ook wel kunnen als normale gebruiker. De beste oplossing die je daar volgens mij voor kunt gebruiken is sudo (zie paragraaf 11.8).
Naast mounten kun je ook met het programma smbclient een share bekijken en bestanden downloaden en uploaden op dezelfde manier als bij een FTP-server. Erg handig vind ik het programma echter niet. Je kunt bijv. niet de eerder gebruikte commando's terughalen met het pijltje omhoog en er is ook geen tab-completion voor bestandsnamen, zodat je alles volledig moet intikken. Daarom mount ik een share liever.
Het configuratiebestand van de server is /etc/smb.conf of /etc/samba/smb.conf. Wat je in dit bestand moet zetten wordt uitgelegd in de manual page (man smb.conf). Een voorbeeldconfiguratie:
[global] workgroup = STUDENT deadtime = 10 security = share log level = 2 log file = /var/log/samba/log.%m max log size = 100 socket options = TCP_NODELAY IPTOS_LOWDELAY encrypt passwords = yes server string = linux machine (max 5 users) hosts allow = 192.168.0. 127.0.0.1 [hp600b/w] path = /usr/tmp guest ok = no printable = yes print command = /usr/bin/lpr -r -Pnorm %s printer = norm printing = BSD read only = yes min print space = 2000 [public] comment = download stuff path = /home/public max connections = 5 read only = Yes guest ok = yes [upload] comment = upload stuff path = /home/upload max connections = 5 read only = No guest ok = Yes