Samba
Fra Wikipedia, den frie encyklopedi.
Samba er en fri implementasjon av Microsoft-spesifikke nettverkstjenester. I versjon 3 tilbyr Samba ikke bare fil- og utskriftstjenester for ulike Microsoft Windows-klienter, men kan også tilby domenetjenester, enten som en primær domenekontroller (PDC) eller som en backup-domenekontroller. Den kan også være deltaker i et Active Directory-domene.
Samba kan brukes med de fleste UNIX- og Unix-liknende systemer, slik som GNU/Linux, Solaris og BSD-varianter som Apple sin Mac OS X tjener.
Navnet «Samba» ble skapt ved å sette to vokaler inn i forkortelsen av navnet til protokollen som nettverksfilsystemet bruker, «Server Message Block» (SMB). Samba het opprinnelig smbserver, men navnet måtte endres fordi selskapet Syntax eide varemerket «SMBserver». Senere har protokollen blitt døpt om til CIFS.
Konfigurering av Samba gjøres ved å redigere en enkelt fil, eller ved hjelp av programmet SWAT som kan aksesseres fra en vanlig nettleser. Samba kan også tilby brukerpåloggingsscripts og en implementasjon av gruppe-policy gjennom poledit.
Samba ble opprinnelig utviklet for UNIX av Andrew Tridgell ved Australian National University.
| Innholdsfortegnelse |
Oppsett
Installasjon
Bruk pakkestyreren til din distribusjon for å installere Samba.
Deling av skrivere fra GNU/Linux til Windows med Samba
Vi antar at du har fått installert og satt opp skriveren med utskriftssystemet CUPS, slik at den fungerer.
Den enkleste måten å dele en skriver fra GNU/Linux til Windows med, er å bruke Samba. Windows støtter også i teorien IPP, men dette er lite brukt og hører uansett ikke til denne artikkelen.
For å gjøre dette må man først sette opp Samba til å dele ut skriverne. Det gjør vi ved å modifisere /etc/samba/smb.conf. Resultatet bør se ut som dette:
[global]
workgroup = workgroup
password server = None
guest ok = yes
guest account = nfsnobody
security = SHARE
browsable = yes
printing = cups
printcap name = cups
[printers]
browsable = yes
printable = yes
public = yes
create mode = 0700
#path = /usr/spool/cups
guest ok = yes
use client driver = yes
Merk spesiellt at path er kommentert ut; ettersom vi bruker CUPS direkte, lager vi ikke filer. Merk også use client driver = yes - dette betyr at Windows-maskinen skal kjøre driveren selv, og så overføre de ferdigprosesserte dataene til Samba som overfører det videre til CUPS, som igjen overfører det videre til skriveren, uforandret.
For å tillate en slik direkte overføring («raw mode») i CUPS, må vi endre litt på konfigurasjonen til CUPS: I /etc/cups/mime.convs, fjern kommentartegnet (#) foran denne linjen for å aktivere den (nesten nederst):
application/octet-stream application/vnd.cups-raw 0
Fjern også kommentartegnet i /etc/cups/mime.types:
application/octet-stream
I Fedora må skriveren være merket som «delt» i system-config-printer. I andre distribusjoner kan man endre konfigurasjonen direkte i /etc/cups/cupsd.conf.
Vi må så starte CUPS og Samba på nytt for at endringene skal ta effekt:
[root@localhost root]# /etc/init.d/cups restart Avslutter cups: [ OK ] Starter cups: [ OK ] [root@localhost root]# /etc/init.d/smb restart Avslutter SMB-tjenester: [ OK ] Avslutter NMB-tjenester: [ OK ] Starter SMB-tjenester: [ OK ] Starter NMB-tjenester: [ OK ]
Måten man restarter tjenester på varierer i noen tilfeller fra distribusjon til distribusjon; om måten vi viste her ikke fungerer for deg, se dokumentasjonen til distribusjonen du bruker.
Vi kan nå gå i gang med å installere skriveren på Windows-maskinen. I Utforsker, gå til adressen \\ipadresse-til-gnulinuxmaskin. Siden vi har satt browsable = yes i Samba sin konfigurasjonsfil, vil delte ressurser dukke opp. Hvis du nå klikker på skriveren, vil du bli bedt om å installere denne. Gjør dette som vanlig, bruk eventuellt .inf-fil («har diskett») om Windows ikke har driver fra før av. Skriv ut en testside, se at det fungerer. Om ikke, ta en titt på loggfila /var/logs/samba/ipadresse-eller-maskinnavn-til-klient. Et tips her er å bruke kommandoen tail, da denne viser det siste (nyeste) som står i fila.
Deling av kataloger fra GNU/Linux til Windows med Samba
Den enkleste måten å dele en katalog med filer fra GNU/Linux til Windows med, er å bruke Samba.
For å gjøre dette må man først sette opp Samba til å dele ut katalogene. Det gjør vi ved å modifisere /etc/samba/smb.conf. Resultatet bør se ut som dette:
| Fil: /etc/samba/smb.conf |
[global]
workgroup = workgroup
password server = None
guest ok = yes
guest account = nfsnobody
security = user
browsable = yes
# En privat katalog for fred. Husk at fred behøver
# skrivetilgang til katalogen.
[fredsprivat]
comment = Fred's Katalog
path = /home/fred/privat
valid users = fred
public = no
writable = yes
printable = no
|
Montering av delte Windows-kataloger
Dersom man har Windows-maskiner i nettverket og har satt opp delte kataloger man ønsker tilgang til, kan man montere disse omtrent på samme måte som man gjør i Linux.
Merk: CIFS er foretrukket framfor SMB. Du kan bruke mount kommandoen istedet for smbmount.
CIFS
# mount -t cifs //<windows-maskin navn>/<delt katalog> /<monteringspunkt> \ -o username=<brukernavn>,password=<passord>,uid=<uid>,gid=<gid>
SMB
# smbmount //<windows-maskin navn>/<delt katalog> /<monteringspunkt> \ -o username=<brukernavn>,password=<passord>,uid=<uid>,umask=000
-o blir brukt for å sende opsjoner til mount kommandoen.
- username og password er brukernavn og passord til windowsbrukeren
- uid og gid er brukt for å sette lokalt eierskap (linuxbrukeren)
- umask er for å sette rettigheter på filene
/etc/fstab
For å montere katalogene ved oppstart kan man legge følgende til /etc/fstab:
SMB
| Fil: /etc/fstab |
//<windows-maskin navn>/<delt katalog> /<monteringspunkt> smbfs username=<user>,password=<pass>,uid=1000,umask=000 0 0 |
CIFS
| Fil: /etc/fstab |
//<windows-maskin navn>/<delt katalog> /<monteringspunkt> cifs username=<brukernavn>,password=<passord>,uid=<uid>,gid=<gid> |
| /etc/fstab kan leses av alle og det er derfor ikke sikkert å lagre passordet her. Det anbefales å bruke en egen «credentials» fil til å lagre brukernavn og passord. |
| Fil: /etc/fstab |
//<windows-maskin navn>/<delt katalog> /<monteringspunkt> cifs credentials=<sti/til/credentialsfil>,uid=<uid>,gid=<gid> |
| Fil: /root/.credentials eksempel |
username=brukernavn password=hemmelig_passord |
Man kan deretter sette denne slik at kun eier kan lese og skrive til filen:
# chmod 600 /root/.credentials
Nå kan du teste oppsettet:
# mount <monteringspunkt>
Feilsøking
Feil kan alltid oppstå:
- mount error 13 = Permission Denied
- TCP Name not found
Denne feilen opptrer som oftest når man forsøker å montere med CIFS. Man kan først forsøke å bytte ut windows-maskin navnet med IP-adressen (//192.168.1.100/<delt katalog>). Dersom det fungerer, så er det sannsynlig at mount kommandoen ikke foretar NetBIOS oppslag. Det kan løses ved å legge til wins som et argument i nsswitch.conf-filen på hosts-linjen:
| Fil: /etc/nsswitch.conf |
passwd: files group: files shadow: files publickey: files hosts: wins files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: db files |
Eksterne ressurser
- Nettstedet til Samba (http://samba.org)
- Debian and Windows Shared Printing mini-HOWTO - Sharing Printers With Windows PCs (http://www.tldp.org/HOWTO/Debian-and-Windows-Shared-Printing/sharing_with_windows.html)
- Fedoranews - How to share a local printer on GNU/Linux with Windows using Samba (http://fedoranews.org/tchung/samba/)


