Konfigurace Samba serveru


Abychom mohli z linuxu zpřístupnit data pro stanice se systémem MS windows přes takzvané "sdílení" potřebujeme k tomu službu nazývanou SAMBA, která toto umožnuje. Většina distribucí již sambu obsahuje, takže ji máte již buď nainstalovanou, nebo ji naleznete na některém z instalačních CD (Popřípadě zde). Součástí tohoto balíku je vše co potřebujeme, tedy jak samba server tak klient. V jádře budete muset mít zkompilovaný filesystem smbfs (alespoň modul).

(filesystems->network filesystems->SMB file system support)

Pro instalaci a konfiguraci samby potřebujete být přihlášen jako root (abyste měli dostatečná práva).
Konfigurace samby se provádí editací souboru /etc/samba/smb.conf (jeho přesné umístění záleží na distribuci, Fedora Core, Debian jej mají v /etc/samba/smb.conf):

Všímejte si níže uvedených parametrů, ostatní doporučuji nachat na pokoji, pokud přesně nevíte co děláte.
Toto jsou parametry ke správnému nastavení serveru.

[global]
guest account = nobody
invalid users = root
character set=iso8859-2
(samba 3.x: unix charset = ISO8859-2)
client code page=852
(samba 3.x: dos charset = 852)
security = share
workgroup = k4
wins support = no
wins server = wins.trdlo.cz
os level = 30
domain master = no
local master = no
preferred master = no

U parametru guest account není nutno použít zrovna usera nobody. Dále si ukážeme jak nasdílet adresář tak, aby byl přístupný všem, bez nutnosti zadávání usera a hesla:

[mp3]
comment=hudba
browseable=yes
path=/opt/hudba
guest ok=yes
writable=no

Nyní budeme chtít sdílet adresář pod heslem. Pro tento ůčel je třeba definovat v sekci global "guest account" (viz výše). Doporučuji usera nobody, anonymous apod. User ale MUSÍ existovat reálně v systému! Dále jsou pro nás důležité tyto parametry:

encrypt passwords =yes
smb passwd file = /etc/samba/smbpasswd

Opět se může cesta k souboru smbpasswd v různých distribucích lišit, pro Fedora Core a Debian je však výše uvedená. Nyní si vytvoříme heslo pro sambu pro usera nobody.

smbpasswd -a nobody
New SMB password:NOBODYPW
Retype new SMB password:NOBODYPW
Added user nobody.

Teď tedy máme uživatele nobody s heslem do samby "NOBODYPW". Už jen zbývá nadefinovat zdroj tak, aby k němu měl přístup jakýkoliv uživatel, pouze se znalostí správného hesla:

[data]
comment=videodata
browseable=yes
path=/opt/data
user only=no
writable=no 
username=nobody

Pokud chceme nasdílet adresář pro zápis, zvolíme (překvapivě) parametr writable=yes. Server i klienta spouštíme jako daemon, tedy příkazy smbd -d, nmbd -d. Jestli služba beží můžeme ověřit příkazem ps:

ps ax
.
.
6397 ?        S      0:00 nmbd -D
7002 ?        S      0:11 smbd -D
.
.

Dále si ověříme, že to co jsme nasdíleli opravdu nasdílené je.

smbclient -L localhost
added interface ip=........... bcast=............ nmask=255.255.255.0
Password:
Domain=[XX] OS=[Unix] Server=[Samba 2.2.2]

        Sharename      Type      Comment
        ---------      ----      -------
        mp3            Disk      hudba
        data           Disk      videodata

        Server               Comment
        ---------            -------
        TRDLO                Samba server [trdlo] 2.0.9
        MYSRV                roman (Samba 2.2.2)

        Workgroup            Master
        ---------            -------
        TRDLOGRP             TRDLO

Nasdílené položky jsou vylistované pod sharename, v našem případě mp3 s komentářem "hudba" a skola s komentářem prokololy.

Celý konfigurační soubor bude tedy vypadat nějak takto (řádky začínající znaky ";" nebo "#" jsou ignorovány a slouží jako komentáře). Příklad je konfigurační soubor samby verze 2.2.2-2:

# Global parameters
[global]
client code page = 852
(samba 3.x: dos charset = 852)
workgroup = K4
server string = john (Samba %v)
security = SHARE
encrypt passwords = Yes
obey pam restrictions = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .
syslog = 0
max log size = 1000
socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
character set = ISO8859-2
(samba 3.x: unix charset = ISO8859-2)
os level = 30
preferred master = False
local master = No
domain master = False
dns proxy = No
wins server = wins.trdlo.cz
invalid users = root
create mask = 0700
directory mask = 0700

[mp3]
comment = hudba
path = /opt/mp3
guest ok = Yes

[data]
comment = videodata
path = /opt/data
username=nobody