Ottenere Samba

Potete scaricare Samba nel sito ufficiale Samba.org, ad oggi la versione current è la 3.0.14a.

Compilazione e installazione

Scaricate il pacchetto e scompattatelo con:

$ tar xvzf samba-3.0.14a.tar.gz

Per compilare Samba eseguite:

$  ./configure --sysconfdir=/etc --prefix=/usr --with-smbmount

Le opzioni specificano:

--sysconfdir

La directory in cui installare i files di configurazione

--prefix

La directory principale del programma

--with-smbmount

Attivazione della caratteristica smbmount per montare partizioni samba come fossero dischi locali.
Inoltre questa caratteristica è richiesta da SMB Web Client, un client samba in php che permette di navigare in Samba col browser web.

A questo punto si può compilare e installare Samba:

$ make
# make install

Per automatizzare il lancio di Samba all'avvio si può utilizzare il file /etc/rc.d/rc.samba dandogli i permessi di esecuzione:

# chmod +x /etc/rc.d/rc.samba

Ecco il mio rc.samba:

#!/bin/sh
#
# /etc/rc.d/rc.samba
#
# Start/stop/restart the Samba SMB file/print server.
#
# To make Samba start automatically at boot, make this
# file executable:  chmod 755 /etc/rc.d/rc.samba
#

samba_start() {
 if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/smb.conf ]; then

    echo "Starting Samba: /usr/sbin/smbd -D"
    /usr/sbin/smbd -D
    echo "                /usr/sbin/nmbd -D"
    /usr/sbin/nmbd -D
  fi
}

samba_stop() {
  killall smbd nmbd
}

samba_restart() {
  samba_stop
  sleep 2
  samba_start
}

case "$1" in
'start')
  samba_start
  ;;
'stop')
  samba_stop
  ;;
'restart')
  samba_restart
  ;;
*)
  # Default is "start", for backwards compatibility with previous
  # Slackware versions.  This may change to a 'usage' error someday.
  samba_start
esac

Configurazione: smb.conf

Per una guida completa leggete qui.

Le opzioni di configurazione possono essere di 2 tipi fondamentali:

  • global, appaiono solo nella sezione [global] e definiscono i comportamente generali del server Samba
  • share, appaiono all'interno di specifiche share e definiscono il comportamento riguardo alla specifica share. Se appaiono in [global] definiscono i comportamenti di default.

Qualsiasi opzione deve essere inclusa una una sezione. Esistono le seguenti sezioni speciali:
[global] Sempre presente, di solito ad inizio file, definisce le opzioni di default valide per tutte le condivisioni (possono essere sovrascritte da opzioni contrarie presenti nelle specifiche sezioni) e i parametri generali di configurazione del server.[global] Sempre presente, di solito ad inizio file, definisce le opzioni di default valide per tutte le condivisioni (possono essere sovrascritte da opzioni contrarie presenti nelle specifiche sezioni) e i parametri generali di configurazione del server. [printers] E' una sezione speciale utilizzata per condividere l'accesso via rete a delle stampanti [homes] E' una sezione speciale che coincide con la home directory di un utente autenticato. Di fatto è una condivisione generica con il nome dell'utente che accede a Samba.[homes] E' una sezione speciale che coincide con la home directory di un utente autenticato. Di fatto è una condivisione generica con il nome dell'utente che accede a Samba.

Oltre a queste sezioni speciali ne possono esistere un numero arbitrario di altre, il nome di ogni sezione coincide con il nome della relativa condivisione, così come appare al client SMB.

Qui di seguito il mio file smb.conf:

[global]
   workgroup = Tommyblue.it
   netbios name = Tommyblue
   server string = Desktop
   hosts allow = ALL

   log file = /var/log/samba/samba.%m
   max log size = 500
   log level = 3

   guest account = samba-guest
   smb passwd file = /etc/samba/smbpasswd
   encrypt passwords = yes

[netlogon]
   path = /samba/logon
   public = no
   Comment = share to domain logon
   writable = no
   browsable = no

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = yes
   guest ok = yes
   writable = no
   printable = yes
   public = yes

[public]
   comment = Public Stuff
   path = /home/samba-guest
   public = yes
   writable = yes
   printable = no
   create mask = 0765
   guest ok = yes

[Dati]
    path = /mnt/dati
    public = yes
    writable = yes
    printable = no
    create mask = 0765
    guest ok = yes

NOTA:

Nonostante l'opzione --sysconfdir Samba cerca il file smb.conf in /usr/lib, ho quindi creato un link simbolico in /etc:

# cd /etc
# ln -s /usr/lib/smb.conf

Configurazione: smbpasswd

smbpasswd è l'applicazione che gestisce le password e gli utenti di samba. Per far funzionare l'applicazione dovete creare il percorso di smbpasswd specificato in /etc/samba/smb.conf
A questo punto per abilitare gli utenti ad accedere alle vostre condivisioni dovete aggiungerli al file smbpasswd.
Per prima cosa gli utenti di Samba devono anche essere utenti del sistema, quindi aggiungeteli se non esistono.
Per avere una panoramica completa su smbpasswd lanciate:

$ man smbpasswd

Di seguito alcuni semplici esempi:

  • Creare un utente senza password

    smbpasswd -n -a utente

blog comments powered by Disqus