Samba je Open Source/Free Software balík, který zprostředkovává souborové
a tiskové služby SMB/CIFS klientům.
Samba může být nainstalována z balíčků dostupných pro většinu UNIXových
a Linuxových distribucí nebo zkompilována a nainstalována ze
zdrojových kódů.
Zdrojové kódy Samby se dají stáhnout přes svn (viz instrukce na
http://samba.org/samba/subversion.html)
nebo HTTP (viz
http://samba.org/samba/download/)
případně RSYNC/FTP (z serveru pserver.samba.org).
Pro kompilaci zdrojových kódů stačí sequence
./autogen.sh && ./configure && make && make install
někteří lidé raději instalují make install sekvencí
make installbin && make installman pro oddělení instalace
binárních souborů a manualových stránek.
Pro zapnutí Active Directory Support je třeba mít vývojové
knihovny pro MIT nebo Heimdal Kerberos a OpenLDAP. Při překladu je
třeba nahradit ./configure na
./configure --with-krb5=DIR. Po provedeni configure je dobré
zkontrolovat, že soubor include/config.h obsahuje řádky
#define HAVE_KRB5 1
#define HAVE_LDAP 1
pokud ne, je třeba zkontrolovat v logu config.log proč nebyly
knohovny Kerberos/OpenLDAP nalezeny.
Konfigurace serveru se provádí v souboru /etc/samba/smb.conf
(případně /usr/local/samba/lib/smb.conf podle instalace).
Konfigurační soubor je podobný .ini souborům. Každá sekce obsahuje
informace o zdílení nebo meta-službách (viz další kapitola). Vyjímkou
je speciální sekce [global]
.
Některé častopoužívané nastavení:
seznam hostů/subadres ze kterých povolit přístup (např.
192.168.1. 127.)
|
include |
dovoluje přizpůsobit konfiguraci v závislosti na netbios jméně
připojujícího se stroje
|
load printers |
zdali se mají automaticky načítat tiskárny |
local master |
zdali se má server stát hlavním prohlížečem v síti |
security |
mód zabezpečení, podporované módy jsou
- share - uživatelé se při připojení nemusí autentizovat
-
user - uživatel se musí nejprve autentizovat jménem a heslem
(výchozí)
-
domain - tento mód pracuje pouze, když je síť nastavená na použití
stroje ve Windows NT Doméně. Předpokládá se, že parametr
password bude nastaven na yes.
-
server - v tomto módu se bude Samba pokoušet zvalidovat
jméne/heslo pomocí jiného SMB serveru. Při selhání se přejde
zpět na security = user.
- ads - v tomto módu se bude Samba jako člen ADS sféry
|
server string |
ekvivalent pole NT Popis |
wins support |
povolit v NMBD WINS server |
workgroup |
NT Domain name nebo Workgroup-Name (povinný) |
Zdílení složek a tiskáren se konfiguruje v souboru
/etc/samba/smb.conf. Všechny sekce (kromě sekce
[global]
) jsou definicí nějakého zdílení.
Nastavení definic:
určuje zdali se má zdílený bod zobrazit ve výpisu |
comment |
komentář zobrazený u zdíleného bodu |
create mask |
maska se kterou budou vytvářeny složky a soubory |
guest ok |
zdali můžou k bodu přistupovat lidi bez autorizace |
path |
cesta ke zdílenému bodu v systému |
printable |
zdali můžou uživatelé otevírat, psát a posílat tiskové
soubory do složky tohoto zdílení
|
public |
zdali je viditelný i bez autorizace |
read only |
zdali je zdílený bod jen pro čtení (opak writable) |
valid users |
kteří uživatelé se mohou připojit k bodu |
writable |
zdali se dá zapisovat |
Příklad zdílení domovských adresářů:
[homes]
comment = Home Directories
browseable = no
writable = yes
Příklad veřejného adresáře:
[public]
comment = Public (ro)
path = /mnt/data
public = yes
writable = no
printable = no
Příklad neveřejného adresáře přístupného pouze dvoum uživatelům:
[myshare]
comment = Mary's and Fred's stuff
path = /usr/somewhere/shared
valid users = mary fred
public = no
writable = yes
printable = no
create mask = 0765
Příklad zdílení všech tiskáren (pokud je tiskový systém podobný
tiskovému systému BSD):
[printers]
comment = All Printers
path = /usr/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
Příklad soukromé tiskárny:
[fredsprn]
comment = Fred's Printer
valid users = fred
path = /homes/fred
printer = freds_printer
public = no
writable = no
printable = yes
Noví uživatelé se přidávají, odebírají a editují pomocí programu
smbpasswd a jsou uloženi
v /etc/samba/private/smbpasswd. Při spustění tohoto programu
normálním uživatelem se program chová jako passwd, akorát se
přímo nezapisuje do souboru, ale jako server-client, tudíž není třeba,
aby byl smbpasswd nastaven se suid root bitem. Při spuštení pod
rootem se program chová podle předaných parametrů (viz příklady)
a zapisuje přímo do souboru, takže nemusí zrovna běžet smbd.
Příklad přidání uživatele:
root# smbpasswd -a LoginID
New SMB password:
Retype new SMB password:
Added user LoginID.
Příklad změny hesla uživatele:
root# smbpasswd LoginID
New SMB password:
Retype new SMB password:
Příklad smazání uživatele:
root@athatia:~# smbpasswd -x LoginID
Deleted user LoginID.
Samba server se zkládá ze tří subserverů, z nichž alespoň první dva
musí být puštěny. Démoni jsou napsáni v pořadí v němž se mají spouštět.
-
nmbd -
Tento démon zajišťuje registrování a rozpoznávání všech
požadavků na jména. Je to hlavní nástroj spojený s procházením
sítě. zajišťuje všechny síťové protokoly založené na UDP.
-
smbd -
Tento démon zpracovává všechny požadavky na souborové a tiskové
operace přes protokoly založené na TCP/IP. Také zajišťuje lokální
autentizaci.
-
winbindd -
Tento démon by měl být spuštěn pokud je Samba členem Windows NT
nebo ADS domény. Také je zapotřebí pokud má Samba důvěryhodný vztah
s jinou doménou.
Příklad skriptu, který spouští Sambu:
if [ ! -e /var/run/samba ]; then
mkdir /var/run/samba
fi &&
if ! netstat -l --udp | grep -q netbios-ns ; then
echo "Starting NetBIOS nameserver ..."
/usr/sbin/nmbd
fi &&
if ! netstat -l --tcp | grep -q netbios-ssn ; then
echo "Starting NetBIOS sessions ..."
/usr/sbin/smbd
fi
Samba v sobě zahrnuje nejenom server, ale také programy pro to aby se počítač mohl tvářit jako klient.
smbclient je utilita ppro přístup k SMB/CIFS zdrojům na
serverch. Ovládání a chování je podobné programu ftp.
Příklad:
# Get a list of shares available on a host
$ smbclient -L localhost -U%
Sharename Type Comment
--------- ---- -------
Plans Disk
IPC$ IPC IPC Service (Samba 3.0.20)
ADMIN$ IPC IPC Service (Samba 3.0.20)
Server Comment
--------- -------
SERVER Samba 3.0.20
Workgroup Master
--------- --------
MIDEARTH SERVER
# Connect to the server
$ smbclient //localhost/Plans
Password:
Anonymous login successful
Domain=[MIDEARTH] OS=[Unix] Server=[Samba 3.0.20]
smb: \> quit
$
smbget je utilita podobná programu wget pro stahování
souborů přes SMB. Umístění souboru se zadává v smb-URL standardu.
Příklady:
# Recursively download 'src' directory
smbget -R smb://rhonwyn/jelmer/src
# Download FreeBSD ISO and enable resuming
smbget -r smb://rhonwyn/isos/FreeBSD5.1.iso
# Recursively download all ISOs
smbget -Rr smb://rhonwyn/isos
# Backup my data on rhonwyn
smbget -Rr smb://rhonwyn/
smbmount připojuje souborový systém smbfs. Obvykle je volán jako
mount.smbfs programem mount při uvedení přepínače
"-t smbfs". smbmount je démon, který běží dokud není
přimoutovaný smbfs odmountován. Pokud nejde přimountovat smbfs,
zkontrolujte setuid root bit u programů smbmount,
mount.smbfs a smbmnt.
Příklady:
# Mount some point
smbmount //server/Plans /mnt/plans
# Mount as different user and with specified server codepage
smbmount //server/Plans /mnt/plans -o username=someuser,codepage=cp1250
smbumount odpojuje souborový systém smbfs. Byl vytvořen, aby dal
normálním uživatelům Linuxu větší kontolu nad jejich zdroji.
Příklady:
# Unmount some point
smbumount ~/mnt/plans
Zdroje
Stránky projektu - samba.org
Samba3-HOWTO -
PDF
HTML
Samba3-ByExample -
PDF
HTML
man stránky - smbclient(1), smbget(1), smbmount(8), smbumount(8),
smbpasswd(8), smb.conf(5)
Zkratky
- ADS (Active Directory Service)
-
zajišťuje administraci všech věcí přístupných přes Active Directory.
- CIFS (Common Internet File System)
-
je protokol pro zdílení souborů, tiskáren, seriových portů
a komunikačních abstrakcí jako pojmenované roury nebo mail sloty mezi
počítači. CIFS je založen na široce používaném SMB protokolu.
- SMB (Server Message Block)
-
je protokol pro zdílení souborů, tiskáren, seriových portů
a komunikačních abstrakcí jako pojmenované roury nebo mail sloty mezi
počítači
- WINS (Windows Internet Naming Service)
-
je služba, která pracuje jako jmenný server. Použitím WINS se dá
předejít vrácení dvou různých odpovědí pro shodně pojmenované počítače
v sítí.