Samba server jaosrezhiimis

Allikas: Kuutõrvaja

Samba Server jaosrezžiimis

Kui kõigile Windowsi kasutajatele, sõltumata sellest, kas nad on ka UNIXi kasutajad, soovitakse teha ühtviisi kättesaadavaks UNIXi printer ja teatud UNIXi failisüsteemi osad, siis on otstarbekas kasutada Samba serverit jaosrežiimis. Samas saab UNIXi kasutajatele luua paroolidega kaitstud teenuseid.

Jaosrežiimi (ingl. k. share mode) puhul on iga teenusega seotud parool ja server ei küsi seda enne, kui te asute teenust reaalselt kasutama.

Näiteks valides Windows Exploreris Network Neighborhoodist jaosrežiimis töötava Samba serveri, näete te ilma parooli küsimiseta kõikide sirvitavate teenuste nimesid. Kui te püüate siseneda failiteenusele vastavasse kataloogi, siis võidakse teilt parooli küsida.

Teenuse võib määrata kõigile vabalt kasutatavaks ja autentimist ei toimugi. Näiteks tehakse tavaliselt printer kõigile kättesaadavaks või lubatakse kõigil lugeda teatud UNIXi kataloogist faile.

Jaosrežiimis töötava Samba serveri kasutamiseks on sobiv tekitada Windowsi masinasse samanimeline kasutaja kui UNIXis ning Windowsi parooliks seada Samba serverit rahuldav parool.

Parooliga kaitstud teenused

Jaosrežiimis töötav Samba server saab pakkuda teenuseid, mille tarvitamiseks peab kasutaja näitama kasutajanime ja parooli.

Näiteks konfigureerime Samba serveri pakkuma vaid kõigile UNIXi kasutajatele ligipääsetavat failiteenust //samba/unixikasutajad moodustades sellise Samba konfiguratsioonifaili /etc/smb.conf või /usr/local/samba/lib/smb.conf

[global]
  netbios name = samba
  workgroup = ZOO
  security = share
  server string = Samba server %v
  log file = /usr/local/samba/var/samba.log

[unixikasutajad]
  comment = UNIXi kasutajatele
  path = /home/unixikasutajad
  writeable = yes
  browseable = yes

Kui Windowsi kasutaja püüab siseneda Exploreris sarnaselt konfigureeritud failiteenusele vastavasse kataloogi, siis küsitakse temalt kasutajanime ja parooli. Et antud juhul toimetatakse krüptimata paroolidega, siis kasutajalt oodatakse tema UNIXi kasutajanime ja parooli.

Soovides tarvitada krüptitud paroole peab moodustama paroolifaili ning lisama sinna kasutajad ning konfiguratsioonifaili üldossa kirjutama rea

encrypt passwords = yes

Kasutatud parameetrid:

   * netbios name (Samba serveri NETBIOSi nimi) - näitab nime, mille all Samba server Windowsi Network Neighborhoodis paistab
   * workgroup (töögrupp) Windowsi töögrupp, kuhu Samba server kuulub
   * security (turva) - näitab, millises režiimis server töötab. See on üks olulisemaid parameetreid, mis määrab kasutajate ligipääsu serverile.
   * server string (serveri nime kommentaar) - kommentaar, mis esineb Windows Exploreri aknas serveri nime juures; %v on muutuja, mis asendatakse Samba
     versiooninumbriga
   * log file - logi faili nimi
   * comment (teenuse kommentaar) - Windows Exploreris teenuse juurde ilmuv kommentaar
   * path (failiteenuse tee) - failiteenusele vastava UNIXi kataloogi nimi
   * writeable (failiteenuse kirjutatavus) - teenuse kirjutatavus, st kas saab tekitada katalooge ja faile
   * browseable (teenuse sirvitavus) - näitab, kas ta on nähtav Windows Exploreris. Muuseas, võimalik on tekitada mittenähtav teenus, mida saab ikkagi
     kasutada. 

Kui sellist failiteenust pruugib näiteks kasutaja mart, siis toimetab ta seal oma UNIXi kasutaja õigustes, millest johtub millistesse alamkataloogidesse ta siseneda saab ning see, et kõik tema tekitatud failid on kasutaja mart omad. Sarnaselt toimetab selle teenuse tarvitamisel kasutaja priit oma õigustes jne.

Siinjuures võib tekkida olukord, et kasutajad saavad küll Samba mõttes failiteenust tarvitada, kuid konfliktid ilmnevad, kui üks kasutaja tahab näiteks teise tehtud faili redigeerida või ümber nimetada. Selle vastu aitab kasutajate UNIXi gruppidesse jaotamine ning parameetrite force group, force user, create mode ja directory mask kasutamine.

Soovides luua failiteenust, mis annab näiteks vaid kasutajatele mart ja priit õiguse oma töökohtadelt toimetada, võtke eeskuju sellisest teenuse osast

[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
  allow hosts = 192.168.1.10 192.168.1.11 127.0.0.1 192.168.1.2

Toodud failiteenus on lisaks märgitud mittesirvitavaks, mis tähendab, et teda saab Windowsi kettaks ühendada näidates ise tema UNCi ära, näiteks käsuga

C:\>net use x: \\samba\www

kuid Exploreris ei ole failiteenust näha.

Kasutatud parameetrid:

   * force user - kuigi kasutaja saab teenusele ligi oma kasutajanime ja parooli kasutades, toimetab ta näidatud UNIXi kasutaja õigustes
   * force group - kuigi kasutaja saab teenusele ligi oma kasutajanime ja parooli kasutades, toimetab ta näidatud UNIXi grupi õigustes
   * directory mode - näitab milliste loabittidega teenusesse tekitatud kataloogid tulevad
   * create mode - näitab milliste loabittidega teenusesse tekitatud failid tulevad
   * valid users (lubatud kasutajad) - järgneb tühikuga eraldatud kasutajanimede loetelu, kellel on lubatud teenust kasutada
   * allow hosts (lubatud masinad) - järgneb tühikutega eraldatud loetelu masinatest, millelt tulevaid päringuid teenindatakse. Administreerimise
     lihtsustamiseks soovitatakse lisada localhost (127.0.0.1) ja Samba serveri IPd (192.168.1.2) sinna juurde.

Avalike teenuste konfiguratsioonifaili näide

Seame Samba serveri tööle selliselt, et ta võimaldab kõigil Windowsi töögrupi arvutikasutajatel kasutaja samba õigustes kasutada UNIXi:

   * failisüsteemi kataloogi /home/avalik lugemiseks ja kirjutamiseks
   * failisüsteemi kataloogi /home/lugemik vaid lugemiseks
   * printerit hp6mp 

Ehk teisite öeldes:

   * Kõik Windowsi kasutajad saavad tarvitada lugemiseks ja kirjutamiseks failiteenust //samba/avalik.
   * Kõik Windowsi kasutajad saavad tarvitada vaid lugemiseks failiteenust //samba/lugemik.
   * Kõik Windowsi kasutajad saavad tarvitada printimiseks printimisteenust //samba/hpps. 

Vastav konfiguratsioonifail on selline

[global]
  netbios name = samba
  workgroup = ZOO
  security = share
  server string = Samba server %v
  log file = /usr/local/samba/var/samba.log

# kataloog koigile lugemiseks ja kirjutamiseks
[avalik]
  comment = Koigile kirjutamiseks ja lugemiseks
  path = /home/avalik
  writeable = yes
  public = yes
  guest account = samba
  guest only = yes

; kataloog koigile ainult lugemiseks
[lugemik]
  comment = Koigile lugemiseks ja mitte kirjutamiseks
  path = /home/lugemik
  writeable = no
  public = yes
  guest account = samba
  guest only = yes


Seesugune Samba konfiguratsioon eeldab, et UNIXis on:

   * Kataloog /home/avalik ja selle omanik on kasutaja samba; soovitavalt ei tohiks kasutaja samba saada tavapärasel viisil süsteemi sisse logida. Selleks
     kirjutage süsteemi paroolifailis /etc/passwd kasutaja teisele väljale x-i asemele tärn (*).
   * Kataloog /home/lugemik ning seal sisalduv peab olema kasutajale samba loetav. 

Kasutatud parameetreid:

   * public (teenuse avalikkus) - avalikuks märgitud teenuse kasutamine on kõigile kasutajatele lubatud;
   * guest account (külalise nimi) - UNIXi kasutajanimi, kelle õigustes avalikuks märgitud teenusega tegeletakse; näiteks tekitatava kataloogi omanikuks
     saab UNIXi kasutaja samba
   * guest only (ainult külalisena) - teenust saab kasutada ainult külalise õigustes; 

Parameetrit public saab kasutada jaosrežiimis töötava Samba serveriga ka ilma samaaegse guest only'ita, kuid siis muutub suhteliselt raskesti ennustatavaks, millise UNIXi kasutaja õigustest Samba teenust kasutaja tarvitab. Soovitav on kasutada jaosrežiimis töötava serveri puhul neid kolme parameetrit koos, sest siis on kindel, millise UNIXi kasutaja õigustes tegevus toimub. NB! vaadake, et külalisele vastav UNIXi kasutaja oleks olemas.

Eeldades, et UNIXis on konfigureeritud printer hp6mp, millele on kasutajal samba õigus printida ja soovides anda kõigile kasutajaile printimisvõimalust, lisage konfiguratsioonifaili sektsioon

; printer NB! tahma vahetame kaks korda kuus, mitte tihedamini
[hpps]
  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

Kasutatud parameetreid:

   * printable - näitab kas tegu on printimisteenusega
   * print command - UNIXi käsk, mis trükib; %s asendatakse igal korral trükitava faili nimega
   * printer - UNIXi printeri nimi, vastavalt printerikirjeldusfailile /etc/printcap
   * printing - Linuxi puhul BSD või SYSV; määrab, kuidas toimub teiste printimist puudutavate käskude andmine, nt status, lppause, lprm. 

© EENet 2000