Samba
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 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ää. 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ä, mikä saattaa olla kätevää.
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.