Samba kasutamine
Sisukord
- 1 Konfiguratsioonifail
- 2 Samba käivitamine ning seiskamine
- 3 Iseseisva serverina
- 4 Superserveri Inetd abil
- 5 Samba kasutamine
- 6 Alamvõrgu konfigureerimine
- 7 Samba server tegutseb alati mingi UNIXi kasutaja õigustes
- 8 Muutujad
- 9 Kasutajate kodukataloogid
- 10 Avalik failiteenus
- 11 Printeriteenus
- 12 Teeninduspiirkonna määramine
Konfiguratsioonifail
Samba kasutamise juures on kõige keerulisem koostada sobiv konfiguratsioonifail, mille nimi ja asukoht sõltub sellest, kuidas Samba installeeriti, kuid on tavaliselt /etc/smb.conf või /etc/samba/smb.conf või /usr/local/samba/lib/smb.conf
Konfiguratsioonifailis on kahte tüüpi osi:
* üks üldosa (global) - reguleerib serveri toimimist; seal on näidatud Samba serveri üldised omadused. Näiteks, millisesse Windowsi töögruppi server kuulub. * mitu teenuse osa - defineerib faili- või printimisteenuse. Näiteks tehakse kõigile kasutajatele ainult lugemiseks kättesaadavaks UNIXi kataloogi /home/avalik sisu.
Konfiguratsioonifaili osa nimi kirjutatakse kantsulgude vahele ning konfiguratsiooniparameetritele omistatakse väärtus võrdusmärgiga. Kommentaarideks loetakse read, mida alustatakse # või ; märgiga. Rida võib jätkata tagurpidi kaldkriipsuga (\), kuid see peab olema ise viimane sümbol real. Tühja rida ignoreeritakse.
Toome näite konfiguratsioonifailist eesmärgiga selgitada selle süntaksit; viited kommenteeritud konfiguratsioonifailidele leiate altpoolt.
[global] workgroup = ZOO security = user server string = Samba server %v # Kasutaja priit jagu [homes] comment = kasutaja %u kodukataloog path = /home/%u writeable = yes browseable = no ; koigile lugemiseks [lugemik] comment = Koigile lugemiseks path = /home/lugemik writeable = no public = yes [printers] path = /var/spool/lpd/samba comment = Mustvalge HP 6MP PostScript printer public = yes printable = yes
Samba server pakub faili-ja printeriteenuseid ja seepärast peab iga teenuse juures olema tee. Tee näitab vastava UNIXi kataloogi nime või printeri spooliks kasutatavat kataloogi. Tee ja muud teenuste omadused näidatakse tavaliselt konfiguratsiooniparameetrite abil iga teenuse juures eraldi. Näiteks on teenuse lugemik puhul keelatud sinna kirjutamine.
Enamusel parameetritel on vaikeväärtused. Näiteks võiks jätta teenuses lugemik ära rea writeable, kuivõrd 'no' on ka parameetri väikeväärtus. Vaikeväärtuste väljakirjutamine aitab aga selgemini mõista teenuse iseloomu.
Mõnda parameetrit on lubatud kasutada vaid üldosas (security), mõnda ainult teenuse juures (path), mõnda aga mõlemas (browseable). Kehtima hakkab teenuse juures viimasena näidatud.
Paljudel parameetritel on olemas sünonüümid, näiteks düskraafide jaoks on tehtud lisaks browseable'le browsable. Sarnaselt on sama tähendusega public ja guest ok.
Erilisteks eeldefineeritud osadeks on ka homes, printers ja netlogon.
Samba käivitamine ning seiskamine
Samba server töötab tavaliselt juurkasutaja õigustes ning ta käivitatakse süsteemi alglaadimisskriptidest. Sambat saab kävitada kahte moodi, kas iseseisva serverina või superserveri Inetd abil. Kui Sambat kasutatakse tõenäoliselt harva ja masina ressurssidega on kitsas, siis pole põhjust pidevalt protsesse mälus hoida. Siiski peab arvestama, et Samba serveri poole pöördumisel läbi Inetd kulub veidi rohkem aega.
Iseseisva serverina
Tuleb käivitada deemonitena kaks programmi:
* nmbd - teeb alamvõrgule teatavaks Samba serveri nime ning tema abil saab tööle seada WINSi nimeserveri * smbd - teenindab faili-ja printeriteenuste kasutamise kohta tulevaid päringuid
Serveri käivitamiseks ja seiskamiseks sobib kasutada näiteks sellist skripti
#!/bin/sh case $1 in 'start') echo "Starting smbd..." /usr/local/samba/bin/smbd -D echo "Starting nmbd..." /usr/local/samba/bin/nmbd -D ;; 'stop') echo "Stopping smbd and nmbd..." killall smbd killall nmbd rm -f /usr/local/samba/var/locks/smbd.pid rm -f /usr/local/samba/var/locks/nmbd.pid ;; *) echo "usage: smb {start|stop}" ;; esac
Superserveri Inetd abil
Lisage Inetd konfiguratsioonifaili /etc/inetd.conf read
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd
Peale Samba konfiguratsioonifaili muutmist ei ole tavaliselt vajadust serverit taaskäivitada. Server loeb iga minuti järel automaatselt läbi konfiguratsioonifaili ning samuti igal kliendi pöördumisel.
Samba kasutamine
Kuna Samba server töötab juurkasutaja õigustes, siis valesti konfigureeritud Samba server võib ohustada kogu süsteemi turvalisust. Sambat kasutatakse
* jaosrežiimis või * kasutajarežiimis
Järgides neid viiteid saate teada, millistel tingimustel kasutada üht või teist režiimi ning kuidas seda teha.
Failiteenuse puhul saab kasutajate lugemise ja kirjutamise õigusi määrata Samba konfiguratsioonifailist, kuid need ei ületa vastavaid UNIXi failisüsteemi piiranguid. UNIXi kvoot toimib ka Samba failiteenuse jaoks.
Kui Samba server täidab kliendi korraldusi, siis kaasneb sellega tavaliselt protsesside käivitamine, näiteks failide tekitamine või printimine. Protsessi käivitamiseks peab Samba otsustama millise UNIXi kasutaja õigustes seda teha. Kuna Windowsi maailmas on kasutajate ja nende õigustega suhteliselt ebamäärane olukord, siis seda enam tuleb Samba konfigureerimisel tähele panna, millistes õigustes UNIXi masinas Samba serveri kasutajad tegutsevad.
Alamvõrgu konfigureerimine
Windowsi masinad kasutavad oma teenuste jagamisel ja nende poole pöördumisel SMB protokolli, mis toimib vaid samas alamvõrgus. Paraku UNIX ei toeta otseselt SMB võrguprotokolli, küll aga on võimalik standardse TCP/IP protokolli peal emuleerida SMBd. Kuna TCP/IP on väga levinud võrguprotokoll, siis oskavad ka enamus uusi Windowsi operatsioonisüsteeme (95/98/2000/NT) samuti emuleerida TCP/IP peal SMBd ja seda nimetatakse NBT (NetBIOS over TCP/IP) protokolliks. Tänu sellele on võimalik panna SMB protokolli kasutades omavahel suhtlema UNIXi ja Windowsi masinad, kusjuures UNIXi poolel "räägib" Windowsi võrgu keelt SMB Samba server.
Kuna SMBd ainult emuleeritakse ja reaalselt asub all TCP/IP, siis peab kõigi osavõtvate masinate juures konfigureerima TCP/IP võrgu, so näitama ära vähemalt:
* masina IP-aadressi ja DNSi nime * broadcasti aadressi * alamvõrgu maski
Lisaks tuleb Windowsi masinatele omistada ka NetBIOSi nimed.
Erinevates alamvõrkudes töötavaid Windowsi masinaid koos tööle panna ei pruugi olla lihtne, näiteks tekitada olukord, et ühes kontoris asuvas masinas töötav programm saaks printida teises kontoris asuvale printerile.
Siiski, kui Samba server asub korraga mitmes alamvõrgus on võimalik korraldada asjad nii, et Samba jagab ühe võrgu teenuseid edasi teise alamvõrgu klientidele. Näiteks printerit.
Samba server tegutseb alati mingi UNIXi kasutaja õigustes
Konfiguratsioonifaili teenuste sektsioonid konfigureerivad teenused, kusjuures teenust kasutatakse alati mingi UNIXi kasutaja õigustes. Näiteks kirjeldame skeemiga, kuidas toimub sellise teenuse kasutamine kasutajaõiguste seisukohast
[www] comment = Veebi sisu path = /home/html writeable = yes browseable = no force user = www force group = veeb directory mode = 755 create mode = 744 valid users = mart priit
Tegemist on failiteenusega //samba/www, mille tarvitamine seisneb võimaluses tegeleda UNIXi kataloogi /home/html alla jäävate failide ja kataloogidega.
Teenust on lubatud kasutada ainult kasutajatel mart ja priit, kuid nad tegutsevad kasutaja www õigustes
Samba serveri /home/html Windows teenus www kataloog | | -- > -----| |-------- > ----------| | ligi lubatakse tegutsetakse kasutaja www vaid mart ja priit ja grupi veeb õigustes; luuakse faile ja katalooge loabittidega vastavalt 744 ja 755
Failiteenuse puhul saab kasutajate lugemise ja kirjutamise õigusi määrata Samba konfiguratsioonifailist, kuid need ei ületa vastavaid UNIXi failisüsteemi piiranguid. UNIXi kvoot toimib ka Samba failiteenuse jaoks. Samba poolt kasutatav printer on tavaliselt defineeritud UNIXi printerite kirjeldusfailis.
Kui konfigureerida lihtsalt selline failiteenus
[unixikasutajad] comment = UNIXi kasutajatele path = /home/unixikasutajad writeable = yes browseable = yes
siis toimetab seal igaüks oma UNIXi kasutaja õigustes.
Muutujad
Konfiguratsioonifailis on väga otstarbekas kasutada muutujaid, mille väärtus sõltub sellest kes, kust, kunas jne Samba serveri poole pöördus. Näiteks võiks serveri stringi esitada selliselt
server string = Samba, versioon %v
Töö ajal asendatakse %v Samba versiooninumbriga, näiteks 2.0.7
Teised enamkasutatavad muutujad
* %u - kasutaja nimi * %g - kasutaja esmase grupi nimi * %H - kasutaja kodukataloog * %v - Samba versioon * %h - Samba serveri UNIXi nimi * %m - kliendi NetBIOSi nimi * %L - Samba serveri NetBIOSi nimi * %M - kliendi masina UNIXi nimi * %d - Klienti teenindava serveri protsessi ID * %a - kliendi arhitektuur * %I - kliendi IP-aadress * %T - käesolev aeg
Kasutajate kodukataloogid
Paljude kasutajate korral on tülikas igaühele tekitada isiklikku failiteenust. Seepärast on välja mõeldud eriline teenus nimega homes. Kui Samba serveri poole pöördub klient ja ta soovib kasutada näiteks teenust mart, mida aga Samba konfiguratsioonifailis pole ning olemas on teenus homes, siis vaadatakse süsteemiparoolifailist järele, kas leidub kasutaja mart. Kui leidub, siis tekitatakse automaatselt failiteenus mart, mille sisuks saab UNIXi kasutaja mart kodukataloogi sisu.
Tekitame näieks teenuse homes eesmärgiga anda kasutajale tema kodukataloog ja kui ta sinna faile või katalooge moodustab, siis tekivad need õigustega 700
[homes] comment = Kasutaja %u kodukataloog browseable = no writable = yes create mode = 700 directory mask = 700
Avalik failiteenus
Avalike failiteenuste puhul on ikka see oht, et failidel on kas liiga palju või liiga vähe õigusi. St kui üks kasutaja moodustab avalikku failiteenusesse kataloogi, siis ei saa teine sinna sisse faile salvestada või hullem, saab sealt faile kustutada. Selleks, et tekitada kõigile enamvähem vastuvõetavat olukorda, tuleb kombineerida Samba ja UNIXi failisüsteemi vahendeid (eelkõige ettenägelik kasutajate UNIXi gruppidesse jaotamine, kasutades võimalust teha üks kasutaja mitme grupi liikmeks).
Näiteks tekitame failiteenuse, kuhu saavad ligi vaid kasutajad mart, priit, manna ja riis. Nad saavad üksteise poolt moodustatud faile muuta ja kataloogidesse salvestada. Samuti faile kustutada, kuid faili omanikuks jääb faili tekitaja.
[mpmr] comment = mart, priit, manna ja riis tegutsevad siin path = /home/mpmr writeable = no create mode = 770 directory mode = 770 valid users = mart priit manna riis
Absoluutselt kõigile kasutajatele lugemiseks ja kirjutamiseks mõeldud failiteenus. Kõik toimingud tehakse aga UNIXi kasutaja samba õigustes
[sodipodi] comment = Kõigile kasutajatele lugemiseks ja kirjutamiseks path = /home/sodipodi public = yes writeable = yes create mode = 777 directory mask = 777 guest account = samba guest only = yes
Kui viimased kaks parameetrit ära jätta, siis saavad kasutajad tegeleda avaliku teenusega endiselt, kuid toimetavad enda UNIXi kasutaja õigustes.
Võimalik on tekitada mitu sarnast avalikku teenust nii, et nad töötavad erinevate kasutajate õigustes.
Printeriteenus
Soovides teha Samba kasutajaile vabalt kättesaadavaks kõik UNIXi printerikirjeldusfailis defineeritud printerid, kasutage sellist teenust
[printes] comment = Koik UNIXi prinerid path = /tmp browseable = yes printable = yes public = yes guest account = samba guest only = yes
Soovides konfigureerida ühte konkreetset printerit, tekitage näiteks selline sektsioon
[hp6mp] comment = HP 6MP - mustvalge PostScript printer printable = yes print command = /usr/bin/lpr -Php6mp -r %s printer = lj-6 printing = BSD public = yes guest account = samba guest only = yes
parameetriga print command on näidatud otsesõnu, millise UNIXi käsuga printida ja kuidas seda teha. Antud juhul saadetakse trükitav fail (%s) UNIXi printerisse hp6mp.
Printeri kasutamiseks tuleb Windowsis sobivad printeri draiverid intalleerida, kusjuures peab arvestama seda, kuidas printer on UNIXis kirjeldatud.
Kui Windowsi programm prindib Windowsis konfigureeritud printerile, siis ta kasutab selles konfiguratsioonis näidatud printeri draivereid. Nii väljub Windowsi masinast teatud printkeeles ettevalmistatud fail ja liigub printeri poole. Antud juhul liigub see fail printerisse läbi UNIXi printerikirjeldusfailis näidatud filtrite.
Soovides printida UNIXi küljes olevale printerile nimega otse ja kasutades Windowsis selle printeri enda draivereid, tarvitage näiteks sellist printerikirjeldusfaili printerisektsiooni
otse:\ :sd=/var/spool/lpd/otse:\ :mx#0:\ :sh:\ :lp=/dev/lp0:\ :if=/var/spool/lpd/otse/otse.sh:
ja filtrit otse.sh
#!/bin/sh cat -
Seesuguse asjakorralduse puhul liigub Windowsis sobivalt ettevalmistatud printerikeelne bitijada läbi UNIXi ilma, et seal midagi muudetakse edasi printerisse.
Sellesse filtrisse võib kirjutada juurde mõned printerikasutust logivad read.
Teeninduspiirkonna määramine
Kui Samba serveriks olevasse UNIXi masinasse on installeeritud mitu võrgukaarti, siis parameetri interfaces abil saab näidata, milliste kaartide küljes olevaid alamvõrke teenindatakse. Näiteks määrame Samba teenindama alamvõrke 192.168.1.0 (võrgumaskiga 255.255.255.0) ja 192.168.2.128 (võrgumaskiga 255.255.255.224) lisades üldossa rea
interfaces 192.168.2.128/24 192.168.2.128/255.255.255.224
Võrgumaski võib näidata esimeste ühtede bittide arvuga (24 vastab 255.255.255.0) või tavalise neljaosalise maskiga (255.255.255.224, millele vastab ühtede arv 27).
https://wiki.itcollege.ee/index.php/Samba_jõudluse_parandamine