Instaliuojame SAMBA Gentoo sistemoje

7 vasario, 2007 – 13:37

Samba logotipas Aptarsiu paprasčiausią Samba įdiegimą ir sukonfigūravimą naudotis „share’ais“. Kartu šiame straipsnyje išnagrinėsime tokiom funkcijoms reikalingą konfigūracijos smb.conf failą ir CUPS suderinamumą su Samba. Šis straipsnis padės jums lengviau ir aiškiau sukonfigūruoti Samba.

Kas yra kas?
Straipsnį pradedu šiuo klausimu, nes gali atsirasti žmonių, kuriems neaišku apie ką šis straipsnis. Pradėkime nuo Samba. Samba yra mano nuomone populiariausia programinė įranga naudojama Linux ir Unix tinkluose. Ši programinė įranga realizuoja SMB ir CIFS tinklus.

SMB – Server Message Block. Programinio lygio protokolas, kuris leidžia naudotis dalinimosi paslaugomis.

CIFS – Microsoft paėmė SMB ir pervadino į Common Internet File System. Microsoft taip pat pridėjo įvairių galimybių, tokių kaip symlink’ai, tiesioginis susijungimas be NetBIOS tvarkymo. NetBIOS tai Network Basic Input/Output System, daugiausiai Windows sistemose naudojama tinklo vardų sistema. Nors ir turi daug daugiau galimybių, tačiau pats NetBIOS’as Windows sistemoje yra nesaugus, todėl naujesnės Windows OS tarpusavyje gali “dirbti” be NetBIOS.

CUPS – Common Unix Printing System. Unix sistemose naudojama sistema spausdinimui, kurią aš taip pat panaudosiu šiame straipsnyje.

foomatic – tam tikra gana kompaktiškai surinkta spausdintuvų tvarkyklių sistema.

WORKGROUP – vietinis tinklas yra suskirstytas į grupes. Workgroup tai būtų grupės pavadinimas.

Sistemos paruošimas ir Samba įdiegimas
Pradėkime nuo pasiruošimo Sambos instaliavimui. Norint naudotis Samba savo kompiuteryje, mes turime sukompiliuoti kernelį su SMBFS ir CIFS palaikymu. Tam užtenka redaguoti .config failą ir jame susirasti šias ar panašias eilutes ir pakeisti į žemiau nurodytąsias:

CONFIG_SMB_FS=y
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp437"
CONFIG_CIFS=y

Išsaugokime .config failą ir sukompiliuokime kernel’į. Perkraukime sistemą ir užkraukime šį kernel’į.
Dabar sukompiliuokime Samba:

# emerge samba

Jeigu naudosimės spausdintuvų dalinimusi tai dėl viso pikto suchmodinkime /var/spool/samba:

# chmod 777 /var/spool/samba

Nepamirškime įdėti Samba startavimo į sistemos krovimąsi:

# rc-update add samba default

Taip pat jeigu norėsite kitiems tinklo vartotojams leisti naudotis spausdintuvu jį suinstaliuokite į CUPS. Rekomenduoju parsisiųsti foomatic.

# emerge foomatic

Mano pasiūlymas būtų nesinaudoti standartinėmis konfigūracijomis, o pasiskaityti smb.conf.example failą ir pagal jį sukonfigūruoti Samba, bet aš apžvelgsiu paprastutį konfigūravimą (per daug neišsiplėsiu).

smb.conf pagrindo apžvelgimas
Pirmiausiai /etc/samba/smb.conf faile siūlau įrašyti štai tokį konfigūracinį tekstą (grotelės žymi komentarą, o komentaras baigiasi eilutės pabaigoje t. y. sulig kitu Enter):

[global]
# Čia privaloma nurodyti darbo grupę tokią kokią nurodote kituose kompiuteriuose, kad vieni kitus kompiuteriai „matytų“
workgroup = WORKGROUP
# NetBIOS name nurodo kokiu vardu jūsų kompiuteris funkcionuos tinkle
netbios name = CEL1200
# Šį komentarą Windows Explorer daug kur naudos šalia NetBIOS vardo; tai tarsi kompiuterio apibūdinimas
server string = Samba Server %v
# Jeigu nenorėsite dalintis spausdintuvu ar juo naudotis iš nutolusio kompiuterio, galite sekančią eilutę ištrinti, o jeigu naudositės spausdinimo sistema tinkle tai nurodykite kokia sistema norite naudotis (mūsų atveju - CUPS)
printcap name = cups
# Tai nurodo ar reikia iš viso kreipti dėmesį į spausdintuvus ir jų konfigūracijas. Tai patogu jeigu norite atjungti spausdintuvus ir po to juos greitai įjungti neperrašant viso konfigūracinio failo
load printers = yes
# Pakartotinas spausdinimo sistemos nurodymas
printing = cups
# Nurodome kur saugoti log’us (įrašus apie įvykius)
log file = /var/log/samba/log.%m
# Nurodome didžiausią log’ų dydį Kb
max log size = 50
# Apsaugos lygis. Rekomenduoju naudoti share; jeigu nurodysite user tai turėsite dažniau įvesdinėti slaptažodžius ir prisijungimo vardus, bei galbūt turėsite problemų dėl autentifikacijos.
security = share
# Slaptažodžių šifravimo galimybė
encrypt passwords = yes
# Siūlau nesigilinti, nes esamos nuostatos man kol kas davė tikrai pakankamą greitį ant daugelio sistemų. Tai socket’ų nustatymai.
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Nurodykime įrenginius t. y. maršrutizatoriaus IP ir tinklo plokštę.
interfaces = eth0 192.168.2.1
# Samba slaptažodžių failo nurodymas. Rekomenduoju palikti reiškmę tokia, kokia ji yra.
smb passwd file = /usr/local/samba/private/smbpasswd
# Nurodykime IP adresus, kuriems leisime prisijungti prie Samba tinklo
hosts allow = 192.168.2.0/24 127.0.0.0/8 192.168.2.100 192.168.2.101

http://pastebin.com/f580ba6d3 – šiuo adresu galite rasti šią smb.conf failo sekciją be komentarų.
Šių eilučių turėtų užtekti, kad veiktų Samba. Jeigu norite ką nors „pasharinti“ tai skaitykite straipsnį toliau. O jeigu nenorite tai galite praleisti sekančius du skyrius.

Dalinimasis spausdintuvu
Norint, kad galėtume kitiems leisti spausdinti mūsų spausdintuvu, mes jį, jau kaip minėjau, privalome įdiegti CUPS sistemoje, nes smb.conf failo global sekcijoje nurodėme, kad Samba naudotų CUPS kaip pagrindinę spausdinimo sistemą.
Dabar suteikime vartotojams slaptažodžius (patariu naudoti kitokius negu naudojote sistemoje iki šiol ir atminkite, kad vartotojas, kuriam priskiriate slaptažodį, jau turi būti sukurtas jūsų Gentoo sistemoje):

# smbpasswd -a root
# pdbedit -a -u root

Vietoje root naudokite vartotojo vardą, kuriam suteikiate slaptažodį. Atminkite, kad pagal mūsų konfigūraciją, jūs privalote suteikti slaptažodį root vartotojui. „pdbedit“ komanda įkelia vartotojo informaciją į Samba duomenų bazę.
Dabar konfigūruokime CUPS:

# nano -w /etc/cups/cupsd.conf

Šiame faile susiraskime ir pakeiskime/pridėkime šias eilutes:

ServerName CEL1200 # rekomenduoju naudoti NetBIOS reikšmę iš /etc/samba/smb.conf
ServerAdmin root@CEL1200 # nurodome administratorių
# Nurodome log'ų buvimo vietą ir jų sudėtingumą
AccessLog /var/log/cups/access_log
ErrorLog /var/log/cups/error_log
LogLevel info
# Nurodome kiek leisti daugiausiai klientų. Rekomenduoju didelę reikšmę, nes gali kilti problemų su mažomis.
MaxClients 100000000
BrowseAddress @IF(eth0) # nurodome vietoje eth0 savo tinklo plokštęOrder Deny,Allow
Deny From All
Allow From 192.168.0.* # nurodykime tuos IP adresus, kuriems leisime spausdinti. Žvaigždutė atitinka visus 255 skaičius.
# tolimesnės konfigūracijos nerekomenduoju keisti, apart tą eilutę, kurią aš pakomentavau
AuthType Basic
AuthClass System
Allow From 192.168.0.* # tas pats kaip aukščiau tik šį kartą čia nurodomi IP adresai, kuriems leidžiama vykdyti administracines užduotis pvz., spausdintuvo ištrynimas ar pridėjimas.
Order Deny,Allow
Deny From All

Toliau pageidautina, kad „mime.convs“ faile atkomentuotumėte šią eilutę:

application/octet-stream application/vnd.cups-raw 0 -

O mime.types faile šitą:

application/octet-stream

Dabar perkraukime CUPS:

# /etc/init.d/cupsd start

Taip pat nepamirškime įdėti CUPS paleidimo krovimos metu į init’ą:

# rc-update add cupsd default

Toliau nagrinėsime mano nurodytą smb.conf konfigūracinio failo spausdinimo sekcijas:

# Jeigu turime spausdintuvą tai nurodykime jo pavadinimą, kuriuo mes esame jį instaliavę CUPS sistemoje
[HPLaserJet1000]
# Galimybė uždrausti spausdinimą šiuo spausdintuvu.
printable = yes
# Pasilikime standartinę reikšmę.
path = /var/spool/samba
# Turėtume nurodyti įrašinėjimo galimybę.
read only = no
# Publikavimo galimybė. Atminkite, kad viešiname tik vidiniame tinkle.
public = yes
# Galimybė spausdinti svečiui. Rekomenduoju palikti „yes“.
guest ok = yes
# Windows sistemoje būtų sukurtas katalogas su visais spausdintuvais.
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
public = yes
guest ok = yes
writable = no
printable = yes
create mode = 0700
print command = lpr-cups -P %p -o raw %s -r # naudosime kliento spausdintuvo tvarkykles t. y. CUPS spausdinami dokumentai pasieks jau RAW (tai toks formatas, kuris jau visiškai paruoštas spausdintuvui ar kitam įrenginiui) formate.
# Sekančios eilutės praplečia spausdintuvo konfigūraciją. Esami nustatymai turėtų tikti beveik visoms sistemoms
[print$]
path = /etc/samba/printer
browseable = yes
read only = yes
write list = @adm root
guest ok = no
write list = root

Dabar pridėkime savo spausdintuvą į Samba:

# cupsaddsmb -H CEL1200 -U root -h CEL1200 -v HPLaserJet1000

Vietoje HPLaserJet1000 parašykime savo spausdintuvo pavadinimą, kurį naudojome CUPS sistemoje. O vietoje CEL1200 įrašykime localhost. Jeigu net ir nepavyktų šios komandos įvykdyti, vis tiek rekomenduoju pabandyti viską pabaigti iki galo ir pažiūrėti ar spausdinsis.
Šios sekcijos eilutes be komentarų galite gauti adresu http://pastebin.com/f303835c0.
Norėdami pasidalinti kuriuo nors katalogu, smb.conf faile prirašykite tolimesnes eilutes.

Spausdiname per Samba Windows sistemoje
Per Windows Explorer nueikime į savo serverį (adreso laukelyje įveskime pvz., \\CEL1200). Paspauskite dešiniu pelės klavišu ant spausdintuvo ir pasirinkite Connect. Gali iškristi keletas lentelių (jeigu neinstaliavote spausdintuvo tvarkyklių padavimo Windows sistemai per Samba). Tada spauskite Yes–>Ok–>Have Disk… ir įdėkite spausdintuvo tvarkyklių kompaktą, pasirinkite spausdintuvo inf failą ir sudiekite tvarkykles. Viskas. Galite spausdinti.
Pastaba. Siūlau pasiskaityti http://lists.samba.org/archive/samba/2005-September/110571.html ir http://www.ubuntuforums.org/showthread.php?t=47963.

Spausdiname per Samba Unix paremtose OS
Paruošiame sistemą spausdinimui (pavyzdyje imame Gentoo sistemą, skirtingose distribucijose/OS komandos gali šiek tiek skirtis):

# emerge cups
# /etc/init.d/cupsd start
# rc-update add cupsd default

To turėtų užtekti. Sistema pati susiras spausdintuvą.

Tiesa, galite naudotis CUPS straipsniu, jog pasidarytumėte geresnę spausdinimo sistemą.

Dalinimasis katalogais
Pirmiausiai sukurkime katalogą. Mes kuriame /home/ernestas/myshare:

$ mkdir /home/ernestas/myshare

Nepamirškime jo suchmodinti:

$ chmod o=rx /home/ernestas/myshare

Jeigu norime, kad jis būtų tik skaitomas. O jeigu norime, kad galima būtų į jį ir įrašinėti tai naudokime šią komandą:

$ chmod o=rwx /home/ernestas/myshare

arba galime pratęsti /etc/samba/smb.conf failą šiomis eilutėmis:

# Dalinimosi katalogo pavadinimas, kuris bus rodomas tinklo naršyklėj.
[share]
# Komentaras
comment = share ir tiek…
# Katalogo buvimo vieta
path = /home/ernestas/myshare
# Nurodome skaitymo ir kitus parametrus…
read only = no
public = yes

Perkraukime Samba:

# /etc/init.d/samba restart

Ir galime nueiti prie kitos sistemos ir pažiūrėti ar viskas veikia.
Šios sekcijos smb.conf failo eilutes be komentarų galima atsisiųsti iš http://pastebin.com/f4391bd29.

Pabaiga
Pabaigus konfigūruoti, mes galime perkrauti kompiuterį arba įvykdyti šias komandas:

# /etc/init.d/cupsd restart
# /etc/init.d/samba restart

CUPS ir Samba persikraus. Dabar galite viską tikrinti ir žiūrėti.
Apibendrinant turėčiau paminėti, kad jūs galite nebūtinai viską konfigūruoti rankomis, nes yra tokių įrankių kaip SWAT (Samba Web Administration Tool – tai web interface’as skirtas patogiau administruoti Samba; taip pat jis yra Webmin dalis, bet man asmeniškai nepavyko prie jo prisijungti, tik paleisti, todėl rekomenduoju pirmiausiai išbandyti šio straipsnio turinį) ir pan.
Galutinį smb.conf failo variantą galite gauti adresu http://pastebin.com/m72efe665.
Daugiau pagalbos ir informacijos galite rasti šiais adresais:
Gentoo forums
Gentoo wiki

Atkreipkite dėmesį, kad šiek tiek pakeitus vieną konfigūracinio failo vietą, teks keisti ir kitas nuostatas.

2007 m. vasario 7 d., Pixel

Sorry, comments for this entry are closed at this time.