Samba

Linux.fista
Versio hetkellä 25. maaliskuuta 2009 kello 00.30 – tehnyt Pb (keskustelu | muokkaukset) (cifs-liitosohje sopii paremmin tänne)
Siirry navigaatioon Siirry hakuun

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.

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. Se 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.

Samba-jaon liittäminen

Voit lisätä 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ää. Perinteisesti liitospisteet on luotu hakemiston /mnt alle. Ainakin joissain työpöytäympäristöissä hakemiston /media alle liitetyt tiedostojärjestelmät näkyvät automaattisesti kuvakkeena työpöydällä.

Jos DHCP-palvelinta käytetään IP-osoitteiden jakamiseen, 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 vaatii salasanaa:

 mount -t cifs //netbiosnimi/jaon_nimi /mnt/jaon_nimi -o username=käyttäjänimi,password=salasana,iocharset=utf8,file_mode=0777,dir_mode=0777

Mikäli 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

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 tiedoston /etc/samba/palvelin.credentials sisällöksi seuraavat rivit:

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

Muokkaa tiedoston oikeuksia niin, että vain pääkäyttäjä pystyy lukemaan sitä:

chmod 700 /etc/samba/palvelin.credentials

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=0777,dir_mode=0777 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

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).

 cat /etc/passwd | grep käyttäjätunnus

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

masa:x:500:100:Matti Meikäläinen ,,,:/home/masa:/bin/bash

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