Samba

Linux.fista
Versio hetkellä 1. tammikuuta 2019 kello 23.04 – tehnyt Heikkiket (keskustelu | muokkaukset) (Lisätty Palvelin-malline)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun
Samba
Lisenssi GPLv3
Kotisivu www.samba.org

Samba on Unixeille tehty avoin toteutus Windowsissakin käytetystä SMB/CIFS-tiedostonsiirtoprotokollasta.

Asennus

Samba-palvelinohjelmisto löytyy käytännössä kaikissa jakeluissa paketista samba.

SMB/CIFS-tiedostojärjestelmän liittämiseen tarvittavat ohjelmistot löytyvät jakelusta riippuen joko paketista cifs-mount, mount-cifs, samba-client tai smbfs.

Moduulit

Samban konfiguraatioon voidaan lisätä erilaisia lisämoduuleita, jotka laajentavat samban toimintaa. Näitä ovat esimerkiksi:

  • Roskakori
  • Samba-jakoon siirretyn tiedoston automaattinen virustarkistus
  • Käytettäessä Sambaa tulostamiseen, voi samba luoda esimerkiksi PDF-dokumentin tiettyyn jaettuun hakemistoon
  • Käyttöauditointi, eli kuka loi, muokkasi tai tuhosi tiedostoja ja mihin aikaan
Moduuli: Roskakori

Joskus käyttäjä saattaa poistaa vahingossa tiedoston tai hakemiston. Roskakoritoiminto siirtää poistetut tiedostot määrättyyn hakemistoon, josta palvelimen ylläpitäjän pitää käydä ne erikseen poistamassa tai palauttamassa tilanteesta riippuen. Myös virukset saattavat poistaa hakemistoja tai tiedostoja.

Esimerkkikonfiguraatio:

vfs object = recycle
recycle:repository = /storage/recyclebin/%U/%T
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:directory_mode = 0666
recycle:subdir_mode = 0666

Selityksiä

Parametri Tyyppi Kommentti
recycle:repository Hakemistopolku Esimerkiksi /storage/recyclebin/%U/%T joka luo poistetun hakemistopuun hakemistoon /storage/recyclebin/<käyttäjänimi>/<päivämäärä>
recycle:keeptree Boolean Esimerkiksi Yes joka pitää koko poistetun hakemistorakenteen recycle:repository-hakemiston alla.
recycle:versions Boolean Esimerkiksi Yes joka pitää myös vanhat samanimiset tiedostot tallessa, jotka on poistettu samasta hakemistosta

Palvelimen asetukset

Asennettuasi Samba-palvelinohjelman, lisää käyttäjiä komentorivikomennolla

smbpasswd -a käyttäjänimi

Huomaa että voit tälla tavalla tehdä samba-käyttäjiä vain koneen nykyisistä unix-käyttäjistä. Saatat siis haluta tehdä ensin uuden käyttäjän koko käyttöjärjestelmään (jos käyttäjän ei pidä saada muita oikeuksia, näitä voi rajoittaa esimerkiksi käyttäjäryhmän ja komentotulkin asettamisella). Normaalin käyttäjän luonti onnistuu komennolla

useradd -m tunnus

Salasanan käyttäjälle voi asettaa komennolla

passwd tunnus

Jaettuja hakemistoja ja muita Samba-palvelimen asetuksia voi säätää asetustiedostossa /etc/samba/smb.conf.

Samba osaa käyttää myös ulkoista salasanapalvelinta ja luoda paikallisia tunnuksia tarpeen mukaan. Tästä lisää Samban dokumentaatiossa.

Voit myös käyttää sambaa Unix-koneilta Windows-jakojen käyttöön. Smbclient-ohjelmistolla voit kirjautua FTP-tyylisesti samba-palvelimelle, ja esimerkiksi siirtää tiedostoja palvelimelle/palvelimelta. Jos SELinuxia käyttäessä ilmenee ongelmia Windows-jakoon kirjoittamisesssa (ei lukemisessa), voit kokeilla poistaa smb-taustapalvelulta SELinux-tuen. Tämä tapahtuu SELinuxin asetusohjelmassa.

Graafiset vaihtoehdot

Samba-palvelimen graafiseen asettamiseen on tarjolla monia vaihtoehtoja.

Useimpien jakeluiden paketinhallinnasta löytyy SWAT-niminen www-selainpohjainen asetustyökalu (löytyy asennuksen jälkeen osoitteesta http://localhost:901/).

Jakeluiden asetuskeskuksissa/ylläpitovalikoissa on myös yleensä tarjolla jokin Samba-asetustyökalu, näin on esimerkiksi Fedorassa (system-config-samba), Mandrivassa (asetuskeskus), openSUSEssa (YaST) ja RHEL:issä (system-config-samba).

Samba-jaon liittäminen

Voit liittää Samba-jaon käyttämällä palvelimen NetBIOS-nimeä tai IP-osoitetta. IP-osoite on luotettavampi ja toimii varmemmin, mutta sitä käytettäessä täytyy jotenkin estää osoitteen vaihtuminen, tai joutuu tasaisin väliajoin muuttamaan asetuksia. IP-osoitteen muuttumisen voi estää joko sitomalla se reitittimessä (DHCP-palvelimessa) tiettyyn MAC-osoitteeseen tai käyttämällä staattista IP-osoitetta.

Valmistelu

Aluksi pitää luoda hakemisto (liitospiste), jonne jako halutaan liittää. Väliaikaisesti voi käyttää liitospisteenä hakemistoa /mnt tai sen alihakemistoja, mutta yleensä tarkoitukseen kannattaa luoda uusi hakemisto sen mukaan mihin jakoa on tarkoitus käyttää. Uuden hakemiston voi luoda juurihakemistoon. Uuden hakemiston nimi on varminta muodostaa kirjaimista a-z (ei välilyöntejä, ääkkösiä tms.).

Jos DHCP-palvelinta käytetään IP-osoitteiden ja DNS-nimien jakamiseen dynaamisesti, on suotavaa käyttää NetBIOS-nimeä, jotta asetuksia ei tarvitse muuttaa joka kerta kun verkko sammutetaan. Mikäli käytössä on IP-osoite, voit hypätä kohtaan liittäminen.

Etsitään asetustiedostosta /etc/nsswitch.conf rivi

 hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

ja lisätään sinne sana wins ennen kohtaa dns

 hosts:          files mdns4_minimal [NOTFOUND=return] wins dns mdns4

Asennetaan winbind. Useimmissa jakeluissa se löytyy joko paketista samba-winbind, winbind tai sitten se on sisällytetty pakettiin samba.

Kun olet käynyt edellä olevat vaiheet lävitse, käynnistä netfs-init-skripti (tai tietokone) uudelleen.

Väliaikainen liittäminen

Käyttettäessä tätä tapaa on jako liitettävä joka kerta uudelleen, kun tietokone on käynnistetty uudelleen.

Mikäli liitettävä palvelin ei vaadi salasanaa:

mount -t cifs //netbiosnimi/jaon_nimi /mnt/jaon_nimi -o guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777

Jos jakoon halutaan lukuoikeudet käyttäen vierastiliä:

mount -t cifs //netbiosnimi/jaon_nimi /mnt/jaon_nimi -o guest,iocharset=utf8

Mikäli liitettävä palvelin vaatii salasanaa sen voi antaa liittämisen yhteydessä (sitä kysytään kun kyseessä ei ole vierastili):

 mount -t cifs //netbiosnimi/jaon_nimi /mnt/jaon_nimi -o username=käyttäjänimi,iocharset=utf8,file_mode=0770,dir_mode=0770,gid=users

Sambapalvelin kertoo käytettävät UID- ja GID-arvot yms., mutta käytettäessä Windows-palvelinta ne on usemmiten asetettava asiakkaan puolelta. Uudemmat versiot sallivat käyttäjä- ja ryhmänimien käytön. Viimeisessä esimerkissä jaon käyttö on evätty muilta kuin ryhmään users kuuluvilta ja komennon antajalta (tavallisesti pääkäyttäjä).

Pysyvä liittäminen

Tätä tapaa käyttämällä jakoa ei tarvitse liittää uudestaan joka käynnistyksen jälkeen. Kaikki käynnistyksen yhteydessä liitettävät levyt tallennetaan /etc/fstab-asetustiedostoon. Fstabista voi olla hyvä luoda varmuuskopio ennen sen muokkaamista.

Jos palvelin vaatii tunnistautumista, on järkevää luoda salasanoille ja käyttäjätunnuksille credentials-tiedosto, jossa salasanat ja tunnukset pysyvät piilossa. Tämä tapahtuu luomalla tiedosto /etc/samba/palvelin.credentials, jolle asetetaan oikeudet niin että vain pääkäyttäjä pystyy lukemaan sitä:

touch /etc/samba/palvelin.credentials
chmod 700 /etc/samba/palvelin.credentials

Tiedoston sisällöksi tulee seuraavat rivit:

 username=käyttäjätunnus_palvelimeen
 password=käyttäjätunnuksen_salasana

Mikäli liitettävä palvelin vaatii salasanaa, lisätään fstabin loppuun rivi

 //netbiosnimi/jaon_nimi    /mnt/jaon_nimi        cifs    credentials=/etc/samba/palvelin.credentials,iocharset=utf8,file_mode=0770,dir_mode=0770, 0 0

Mikäli palvelin ei vaadi salasanaa, lisätään rivi

 //netbiosnimi/jaon_nimi    /mnt/jaon_nimi        cifs    guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

Mikäli halutaan vain lukuoikeudet käyttäen vierastiliä, lisätään rivi

//netbiosnimi/jaon_nimi    /mnt/jaon_nimi        cifs    guest,iocharset=utf8 0 0

Kaikki fstabissa listatut listatut tiedostojärjestelmät voi liittää komennolla

 mount -a

Graafiset vaihtoehdot

Gnomen verkonselaustoiminto.
Yhdistä palvelimeen -toiminto Gnomessa.

Gnomessa voi paikallisverkon Samba-jakoja selata kohdasta Sijainnit --> Verkko --> Windows-verkko. Vapaavalintaisen Samba-jaon voi liittää Sijainnit-valikon kohdasta Yhdistä palvelimeen... (Palvelutyyppi: Windows-jako). Jos verkkoa ei voida näyttää Nautiluksessa, järjestelmään ei ole asennettu pakettia gvfs-backends.

KDE4:ssä Samba-jaot löytyvät Dolphin-tiedostonhallintaohjelmassa kohdasta Verkko. Kuvakkeen Samba Shares (Samba-jaot) alla voi selata paikallisverkon Samba-jakoja. Vapaavalintaisen jaon voi liittää kohdasta Lisää verkkokansio (Verkkokansion tyyppi: Microsoft® Windows® verkkolevy).

Virheilmoituksia

Liitosvirhe 13

Jos näet liitosvirheen 13 = pääsy evätty: ("CIFS VFS: cifs_mount failed w/return code = -13" in dmesg) kun olet antanut komennon mount -a, lisää liitoskomentoon asetus nounix. Esimerkiksi

 //netbiosnimi/jaon_nimi    /mnt/jaon_nimi        cifs    credentials=/etc/samba/palvelin.credentials,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

Väli tiedoston nimessä

Jos jonkin jaon nimessä esintyy väli, täytyy se korvata liitoskomennossa merkillä \040

 //netbiosnimi/jaon_nimi\040ja\040väli    /mnt/jaon_nimi        cifs    credentials=/etc/samba/palvelin.credentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

OpenOfficen tallennusvirhe

Jos saat virheen yrittäessäsi muokata jaettua tiedostoa OpenOffice.orgilla, täytyy lisätä asetus nobrl

 //netbiosnimi/jaon_nimi    /mnt/jaon_nimi        cifs    credentials=/etc/samba/palvelin.credentials,iocharset=utf8,nobrl,file_mode=0777,dir_mode=0777 0 0

Pääkäyttäjän omistamat tiedostot

Jos pystyt näkemään, mutta et muokkaamaan, poistamaan tai lisäämään tiedostoja Samba-jakoon, niin kokeile seuraavaa:

1. Selvitä käyttäjänumerosi (UID) ja ensisijaisen ryhmäsi numero (GID).

 id -u;id -g

Tuloste on seuraavaa muotoa, missä ensimmäinen numero (tässä 500) on UID ja toinen numero (tässä 100) GID.

500
100

2. Lisää GID- ja UID-numerot, sekä asetus nounix fstabissa olevaan liitoskomentoon:

 /netbiosnimi/jako_nimi    /mnt/jako_nimi        cifs credentials=/etc/samba/palvelin.credentials,iocharset=utf8,gid=100,uid=500,nounix,file_mode=0777,dir_mode=0777 0 0

Tyhjä rivi puuttuu fstab-tiedostosta

Jos fstab-tiedoston lopusta puuttuu tyhjä rivi, voi ilmaantua virheilmoitus

(warning: no final newline at the end of /etc/fstab)

Ongelma poistuu lisäämällä tyhjä rivi tiedoston loppuun.

Katso myös

v  k  m
Palvelin
 Ylläpito  SSH | Tietoturva | Käyttäjien hallinta | Systemd | iptables | Security-Enhanced Linux | AppArmor
 Palvelintyypit  Web-palvelin | Sähköposti | Tietokanta | NFS | Samba
 Komentorivi  Komentorivin perusteet | Komentorivikomennot | Bash-skriptaus
 Tekstieditoreja  nano | vi | emacs
Palvelin-luokka