» »

Linux in Windows omrežje: Pobotajmo sosede

Marsikdo, ki se je srečal z Linuxom in preživel z njim par dni, si je verjetno zaželel, da bi lahko uporabljal datoteke, ki jih daje v skupno rabo na drugem računalniku. In obratno, verjetno je želel dati v skupno rabo kake datoteke, ki jih ima na računalniku, kjer je nameščen Linux. V tem članku si bomo ogledali kako namestiti in domačemu omrežju primerno nastaviti strežnik in odjemalec za protokol SMB. Predvidevam, da ste na svojo distribucijo Linuxa sambo že namestili in jo je potrebno samo še pravilno nastaviti.

Protokol SMB na kratko

Windows operacijski sistemi za skupno uporabo datotek in tiskalnikov uporabljajo protokol SMB (ang. server message block). Sam protokol je že precej star, prvo implementacijo je namreč razvil IBM, program PC Network Program 1.0. Tudi prvi javni dokument iz leta 1985, kjer se omenja SMB protokol, prihaja od IBM-a. Protokol so kasneje pod svoje okrilje prevzela različna podjetja, med njimi tudi Microsoft. Danes tako že zraven operacijskega sistema Windows dobimo vgrajeno različico odjemalca in strežnika za protokol SMB, ki ga večina pozna pod imenom “Omrežna soseščina” ali “Network neighborhood”. V prihodnje pa se obeta razširitev in prenova SMB protokola poimenovana CIFS oz. common internet file system. Kar je zanimivo, je to, da je Microsoft odprl specifikacije za odjemalce CIFS, ni pa znano kako naj bi strežniki CIFS delovali. Tako kaže, da očitno Microsoft želi del bodočega standarda zadržati samo zase.

Omrežno soseščino želimo izkoristiti, da pridemo do datotek na drugem računalniku, bodisi na računalnuku z nameščenim sistemom Linux bodisi s sistemom Windows. Da pa to lahko pravilno storimo, moramo poznati vsaj osnove organizacije omrežja z uporabo protokola SMB. V osnovi se omrežje deli na strežnike in odjemalce. Običajno je tako, da isti računalnik opravlja tako funkcije strežnika kot odjemalca. Poleg navadnih strežnikov se pri protokolu SMB pojavi še en tip strežnika, tako imenovani “master browser”, ki bi ga lahko s stališča funkcije poimenovali tudi “organizator”. Njegovo delo je, da zbira seznam Samba strežnikov na mreži, ki svoje storitve nudijo odjemalcem. Organizator hrani seznam, ki ga posreduje odjemalcu, ki bi želel brskati po omrežju. Organizator je izvoljen na podlagi večih kriterijev: dodatne točke dobijo novejši operacijski sistemi, sistemi, ki so pred nedavnim pomagali organizatorju, in sistemi, ki so že dlje prižgani. Tako se hrani seznam vseh računalnikov na mreži, da obenem ni potreben strežnik, ki bi bil vedno prižgan, po drugi strani pa omogoča varčevanje s sredstvi, saj ni potrebno vsakemu računalniku posebej skrbeti za posodobljen seznam dostopnih računalnikov. Taka organizacija pa prinaša tudi slabosti, med drugim tudi težjo razumljivost dogajanja na omrežju in s tem povezan kdaj tudi kak čuden pojav, ki ga sprva ne razumete prav dobro.

Različne vloge računalnikov v mreži

Različne vloge računalnikov v mreži


Dostopanje do SMB virov z Linux sistemov

Linux ima več odjemalcev za Windows omrežje. Dva pomembnejša sta smbclient in smbfs. Prvega je možno uporabljati podobno kot ftp odjemalce iz ukazne vrstice. Za dostop do deljene mape z imenom “dokumenti” na računalniku “doma” kot uporabnik Gasper bi napisali tako:

 smbclient -U gasper //doma/dokumenti 

Program bi vas še povprašal po geslu in če ga pravilno vpišete dobite ukazni poziv podoben slednjemu:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.7-Debian] 
smb: \> 

Če dovolite anonimni dostop, potem lahko navajanje uporabnika izpustite.

Namig: če sedaj napišete “help”, se vam izpiše seznam možnih ukazov.

Drugi odjemalec je smbfs, ki omogoča preslikavo oddaljene deljene mape na krajevni datotečni sistem. Tako lahko na primer preslikate prej omenjeno mapo “dokumenti” na mesto mape /media/smb, ki ste jo predhodno ustvarili za ta namen s takim ukazom:

 mount -t smbfs -o username=gasper //doma/dokumenti /media/smb 

Seveda pa se da do deljenih map dostopati tudi prek grafičnih vmesnikov, npr. Konquerorja, večnamenskega brskalnika, ki je del KDE namizja. S Konquerorjem je dostopanje do deljenih virov relativno enostavno. V naslovno vrstico vpišete bodisi smb://doma bodisi smb://192.168.1.1 (če ima računalnik z imenom DOMA ip naslov 192.168.1.1) in se bo Konqueror skušal povezati na računalnik DOMA. V kolikor na oddaljenem računalniku (DOMA) nimate vklopljenega “preprostega deljenja datotek” (Simple file sharing), vas Konqueror utegne povprašati po uporabniškem imenu in geslu. Če želite videti računalnike, ki so v določeni delovni skupini, vpišete v naslovno vrstico smb://workgroup in prikažejo se vam računalniki v delovni skupini Workgroup. Dokaj uporabna funkcija v KDE je tudi lisa, program, ki teče v ozadju in zbira seznam računalnikov na mreži, na katerih tečejo uporabne storitve za prenos datotek kot so FTP strežniki, SSH strežniki (FISH protokol), SMB strežniki (Windows omrežje), spletni strežniki (HTTP protokol) ali NFS strežniki (UNIX/Linux omrežno deljenje datotek).

Brskanje po mreži s pomočjo duhca lisa

Brskanje po mreži s pomočjo duhca lisa

V GNOME namiznem okolju je brskanje po Windows omrežju urejeno precej bolj enostavno. Vse kar vam je storiti, je da v Nautillsu izbrskate omrežje. Omrežna soseščina v GNOME je precej podobna brskanju z Windows Explorerjem, morda še enostavnejša.


Deljenje datotek na Linux računalniku z drugimi na omrežju

Samba, strežnik za SMB protokol, je program, ki teče v ozadju in skrbi, da lahko drugi računalniki na mreži bodisi z Windows bodisi z Linux prek SMB protokola dostopajo do datotek na vašem računalniku. Ker strežnik nima grafičnega vmesnika, do nedavnega pa je bilo na voljo samo nekaj dokaj nekvalitetnih vmesnikov za nastavljanje strežnika, je bilo to opravilo pogosto neprijetna izkušnja za uporabnika.

S KDE 3.3 je dobrodošel del nadzorne plošče tudi modul “Nastavitve Sambe”, ki vam nastavljanje deljenih map precej olajša. Sam vstavek ima za domačega uporabnika sicer veliko preveč možnosti, je pa še vedno precej bolj uporaben kot ročno urejanje nastavitvenih datotek.

Da smemo spreminjati nastavitve Sambe, moramo klikniti gumb administratorski način, ki nas zatem vpraša za geslo. Na zavihku “osnovne nastavitve” je pomembno, da je “stopnja varnosti” nastavljena na “souporaba” (share). To omogoči, da vsi uporabniki brez gesla vidijo deljene mape, če pa hočejo vpogledati v zaščiteno mapo, jih Samba naknadno vpraša za geslo. Pomembni sta še polji “delovna skupina” (workgroup) in “NetBIOS ime”, kamor vpišete ime računalnika, kakor bo viden v delovni skupini.


Osnovne nastavitve strežnika

Osnovne nastavitve strežnika

Zavihek “deljene mape” (shares) razkrije nastavitve deljenih map. Polje “ime” označuje naslov mape, kakor bo viden na mreži. “Pot” (path) je pot mape, ki naj bo deljena. Velja omeniti, da mora biti mapa dostopna uporabniku, ki jo bo pregledoval. Če recimo dostopate do mape z uporabniškim imenom “gasper”, mora biti mapa dostopna lokalnemu uporabniku “gasper”. Če dostopate brez uporabniškega imena in gesla, potem mora biti mapa dostopna vsem uporabnikom (oz. uporabniku nobody). Poleg komentarja k deljeni mapi so včasih še določene ikone. Tako ikona z globusom sporoča, da je deljena mapa vidna vsem. Ikona za urejanje pove, da je v deljeno mapo možno pisati, rdeča ikona stop pa pove, da mapa trenutno ni na voljo.

Seznam deljenih virov

Seznam deljenih virov

Če dvokliknemo na deljeno mapo, se pokaže okno z nastavitvami mape. Tu lahko nastavite pot in ime, po želji še komentar. Če nočete, da bi vam oddaljeni uporabniki lahko pisali po mapi, potem obkljukajte “Samo za branje” (readonly). Če želite mapo deliti z vsemi, torej javno, potem obkljukajte “Javno” (public). Če možnosti “Da se brskati” (browseable) in “Na voljo” (available) nista obkljukani, potem mapa ne bo dostopna. Na sosednjem zavihku lahko nastavite tudi dostop do deljene mape za posamezne uporabnike.

Nastavljanje deljenih virov

Nastavljanje deljenih virov

Uporabnike lahko v Nastavitvah sambe dodajate pod zavihkom “Uporabniki” (Users). Vendar pa ima program enega hrošča, uporabnik bo sicer dodan, vendar naslednjič, ko boste pogledali na ta zavihek, ne bo viden.

Če uporabljate GNOME, ste za nastavljanje strežnika zaenkrat na slabšem, saj za GNOME še ne obstaja neko uporabno orodje. Če imate nameščen tudi KDE, lahko seveda uporabite modul “Nastavitve Sambe” v KDE Control center. Če pa KDE nimate nameščenega, pa nadaljujte z branjem v naslednji odstavek.

Brskanje po mreži iz GNOMEa

Brskanje po mreži iz GNOMEa

Včasih si nastavitveno datoteko sambe zaželite urediti brez grafičnega vmesnika. Lahko, da vam grafični način naenkrat ne dela več, lahko je Samba nameščena na nekem strežniku, ki nima grafičnega vmesnika, lahko pa se pripeti, da nimate nobenega grafičnega orodja za urejanje nastavitev. Nastavitvena datoteka smb.conf se nahaja v mapi /etc/samba. Nastavitve so tipično oblike “ime = vrednost”. Tako npr. nastavite varnost na share, če spremenite vrstico “security = user” v “security = share”. Vrstice, ki se začnejo s podpičjem (;) ali lojtro (#) so komentarji in se ne upoštevajo pri branju nastavitev. Če boste ročno urejali svežo nastavitveno datoteko, potem bo verjetno pred nastavitvijo “security = user” podpičje, ki ga ne smete pozabiti odstraniti, da vaša nastavitev stopi v veljavo.

Deljene mape so v nastavitveni datoteki opisane v kiticah. Te se začnejo z vnosom v oglatih oklepajih. Primer vsakomur dostopne mape:

 [public] 
path = /res/public
public = yes
browseable = yes
guest ok = yes

Vnos v oglatih oklepajih je ime deljene mape, kakor ga bodo videli računalniki, ki bodo brskali po omrežju. Pod njim se nahajajo nastavitve za trenutno deljeno mapo. “Path” je, kot smo že omenili, pot do deljene mape. Nastavitev “public” pove, ali naj bo mapa dostopna vsakemu, ki brska po mreži. Če omogočimo “guest ok”, dovolimo brskanje vsakemu, četudi nima uporabniškega imena na našem računalniku. “Browseable” pa je nastavitev, ki se jo pri mapah nastavi na “yes”. Poglejmo si še podobno kitico, ki dovoli dostop samo določenim uporabnikom:

 [private] 
path = /res/private
public = no
guest ok = no
browseable = yes
valid users = gasper

Za mapo tokrat rečemo, da ni javna (public = no) in da nepoznanih uporabnikov ne dovolimo (guest ok = no). V kolikor želimo še nadalnje omejiti dostop samo določenim uporabnikom, lahko uporabimo nastavitev “valid users”, kjer naštejemo uporabnike, katerim želimo dovoliti dostop do mape. Sicer obstaja mnogo več nastavitev, ena takih je tudi “writeable”, ki jo nastavite na “yes”, če želite, da ima uporabnik pravice pisati v deljeno mapo. Tu smo si samo pogledali kako sambo pripraviti do delovanja, zato večina ostalih nastavitev pa za domačo uporabo ni tako pomembna. Ko urejamo nastavitveno datoteko, je priporočeno, da si pomagamo s programom “testparm”, ki prebere nastavitve in pregleda, da se ni slučajno kje vtihotapila napaka, ki bi preprečila delovanje sambe.

Pomembno pa je, da znamo dodati uporabnika. To storimo z ukazom “smbpasswd -a gasper”. Če uporabnik že obstaja, mu lahko geslo spremenimo z ukazom “smbpasswd gasper”.


Reševanje težav

Včasih se iz vam neznanih razlogov zgodi, da ne morete dostopati do mape, ki ste jo dali v skupno rabo. Obstaja nekaj osnovnih zadev, ki jih najprej preverite, da vidite, kje se je zalomilo.



Do deljene mape ne morem dostopati.
Ali je Samba zagnana? To lahko preverite na več načinov. Lahko poženete ukaz
netstat -nat | grep -i listen
Če opazite vrstici
 tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
potem Samba teče. Druga možnost je, da poženete ukaz
smbclient -L 127.0.0.1
V kolikor Samba teče, se vam bo izpisalo nekaj informacij o strežniku, če pa ne teče, pa vam bo odjemalec smbclient vrnil napako
 Error connecting to 127.0.0.1 (Connection refused) 
Connection to 127.0.0.1 failed
Strežnik Samba je zagnan, a se ne morem povezati na mapo, ki sem jo na Linuxu dal v skupno rabo.
Preverite če je mapa deljena. Z ukazom
smbclient -L 127.0.0.1
boste izpisali nekaj informacij o trenutno deljenih mapah. Če vaše mape ni tam, potem ni deljena. Če ste že preuredili nastavitveno datoteko in nastavili mapo, da je deljena, potem morate še ponovno zagnati sambo. Kako to storiti je nekoliko odvisno od distribucije Linuxa. V Debianu to storite z ukaom
/etc/init.d/samba restart
Izpis ukaza 'smbclient -L //localhost'

Izpis ukaza 'smbclient -L //localhost'

Mapo sedaj vidim, ampak nimam pravic za dostop do mape.
Če dostopate z uporabniškim imenom in geslom, potem preverite, če uporabnik sploh obstaja. To storite z ukazom
pdbedit -L -w -u gasper
Ukaz vrne vrstico podobno tej:
gasper:1000:401D75676D3CCB68AAD3C435B51404EE: 
EE76E9F388CD026ACD491918B8035726:[U ]:LCT-41B32564:
Uporabnik brez gesla pa bi izgledal približno tako:
root:0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[DU ]:LCT-00000000:
Bodite pozorni na [DU ] namestu [U ] - D pomeni, da je uporabniško ime onemogočeno (disabled) in na ikse namesto pravega gesla.

Nadalje mora imeti ta uporabnik pravico do vpogleda v deljeno mapo in vse nadmape. Če torej kot uporabnik gasper na Linuxu nimate dostopa do neke mape, potem bo dostop zavrnjen tudi prek sambe. Na koncu je potrebno poskrbeti, da ima uporabnik tudi ustrezne pravice za branje in/ali pisanje datotek.
Uvod v Linux

Uvod v Linux

Več dejavnikov je vplivalo na nastanek kratkega pregleda osnov Linuxa, ki ste ga pravkar položili pred oči, zato bi težko jedrnato povedal, zakaj sem se odločil, da ga napišem, je pa res, da so glavni razlogi za njegovo rojstvo samo trije, in sicer čedalje pogostejše ...

Preberi cel članek »

Deljenje internetne povezave

Deljenje internetne povezave

Mnogi uporabniki interneta se srečujemo s težavami, ki nastanejo ob deljenju interentne povezave drugim računalnikom, povezanim v domačo - lokalno omrežje (LAN). Možnosti deljenja internetne povezave je več. V tem članku sem se omejil na deljenje internetne povezave ...

Preberi cel članek »

BlueTake USB Dongle

BlueTake USB Dongle

Ko ste si prebrali članek o Bluetoothu, ste ugotovili, da je to protokol, ki bi še najbolje ustrezal vašim potrebam. Dosti ste na poti, v avtomobilu imate prenosni računalnik ter si neizmerno želite, da bi lahko naenkrat dostopali na internet ter se lahko hkrati tudi pogovarjali. ...

Preberi cel članek »

Intervju: Chris Bryant

Intervju: Chris Bryant

Slo-Tech: Se lahko najprej predstavite? Kdo ste, kje delate in na kakšnem položaju? Chris Bryant: Ime mi je Chris Bryant in sem direktor produktnega vodenja za pisarniški paket Microsoft Office. Jaz in moja ekipa smo tisti del podjetja, ki najbolj tesno sodeluje z ekipo programerjev, ki delajo na posameznih ...

Preberi cel članek »