Appunti testati su Ubuntu 16.04.
NOTA: oramai questi appunti sono OBSOLETI. Per le versioni attuali di Ubuntu e di Windows, sono da considerarsi come poco più di una traccia
Non fornisco supporto su questa discussione.
Questa discussione ha il solo scopo di suggerire all'utente "inesperto" una strada molto veloce per l'installazione e configurazione del servizio Samba: questo è solo un modo! Vengono fatte assunzioni forti, viene calcata la mano all'utente "inesperto". Altre scelte potrebbero essere fatte sulla base delle proprie necessità.
Per qualsiasi: correzione, osservazione, suggerimento o altro, inerente questa discussione, cortesemente, mandatemi un messaggio in privato.
Happy Linux
Domanda: quando devo installare il servizio Samba?
Risposta: il servizio Samba deve essere installato quando in una LAN mista, ossia con PC sia Linux sia Windows, dal mio PC voglio condividere file, directory e stampanti (IMHO anche se per quest'ultime è meglio usare il servizio CUPS(*)). Se dal mio PC non voglio condividere nulla di tutto ciò, ma semplicemente accedere, leggere e modificare file, directory e stampanti condivise da un altro PC allora non devo installare il servizio Samba.
(*) [HOWTO] CUPS condivisione stampante
Di seguito verrà trattata la configurazione del servizio Samba utilizzando il metodo "tradizionale" ossia editando il solo file di configurazione /etc/samba/smb.conf.
La configurazione riguarderà l'utilizzo delle risorse condivise MEDIANTE AUTENTICAZIONE al servizio stesso.
La configurazione per l'utilizzo delle risorse SENZA AUTENTICAZIONE è trattata al post N° 7.
La lettura di tutti i post è comunque consigliata per la comprensione dell'intera procedura.
Creo una directory /temp da condividere con il servizio Samba.
Codice: Seleziona tutto
sudo mkdir /temp
Codice: Seleziona tutto
sudo chmod 777 /temp
Codice: Seleziona tutto
ls -dl /temp
(output atteso)
drwxrwxrwx 2 root root 4096 set 11 18:12 /temp
Codice: Seleziona tutto
sudo apt-get install samba
Codice: Seleziona tutto
sudo apt-get install cifs-utils smbclient
Codice: Seleziona tutto
cd /etc/samba
Come prima cosa rinomino il file di configurazione del servizio Samba /etc/samba/smb.conf installato dal pacchetto, affinchè possa usare un mio file di configurazione personalizzato.
Codice: Seleziona tutto
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.ORIGINALE
Creo il nuovo file di configurazione
Codice: Seleziona tutto
sudo touch /etc/samba/smb.conf
sudo chmod 644 /etc/samba/smb.conf
Codice: Seleziona tutto
sudo gedit /etc/samba/smb.conf
Codice: Seleziona tutto
[global]
netbios name = SRV-SAMBA
workgroup = WORKGROUP
server string = %h Samba Server - Version %v
domain logons = no
domain master = no
local master = yes
preferred master = no
os level = 3
server role = auto
security = user
encrypt passwords = yes
map to guest = Bad User
guest account = nobody
directory mask = 0755
create mask = 0644
# Protocolli di connessione che dovranno essere supportati dal client
; client min protocol = CORE
; client max protocol = default
# Protocolli di connessione supportati dal server
; server min protocol = NT1
server min protocol = SMB2
server max protocol = SMB3
# Permette la connessione dei client che supportano il protocollo di connessione LANMAN (Windows NT / 2000 / 95 / 98)
; lanman auth = yes
# Permette la connessione dei client che supportano il protocollo di connessione NTLM (Windows XP)
; ntlm auth = yes
dns proxy = yes
wins support = yes
name resolve order = lmhosts host wins bcast
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
########## Usershare ##########
# Le definizioni degli share creati tramite DE (Unity, Gnome, KDE, XFCE, ... ) vengono memorizzate nella directory /var/lib/samba/usershares
# Per condividere una qualsiasi directory del filesystem
; usershare owner only = false
# Per abilitare l'accesso agli share senza autenticazione
; usershare allow guests = yes
[homes]
comment = %U - Home Directory
available = yes
browseable = no
writeable = yes
guest ok = no
guest only = no
valid users = %U
[temp]
comment = Temp
path = /temp
available = yes
browseable = yes
writeable = yes
# If this parameter is yes for a service, then no password is required to connect to the service
guest ok = no
# If this parameter is yes for a service, then only guest connections to the service are permitted
# This parameter will have no effect if guest ok is not set for the service
guest only = no
Nota: il valore della chiave netbios name è impostato (è meglio impostarlo) uguale al nome del PC srv-samba, ossia uguale all'output del comando
Codice: Seleziona tutto
hostname
Codice: Seleziona tutto
testparm -s
Codice: Seleziona tutto
testparm -sv
Codice: Seleziona tutto
sudo /etc/init.d/samba restart
Per verificare che il servizio si sia avviato correttamente (a livello di processi) posso usare il comando netstat nel seguente modo
Codice: Seleziona tutto
sudo netstat -tulnp | egrep 'nmbd|smbd'
(output atteso)
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 21847/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 21847/smbd
tcp6 0 0 :::139 :::* LISTEN 21847/smbd
tcp6 0 0 :::445 :::* LISTEN 21847/smbd
udp 0 0 192.168.0.255:137 0.0.0.0:* 21784/nmbd
udp 0 0 192.168.0.201:137 0.0.0.0:* 21784/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 21784/nmbd
udp 0 0 192.168.0.255:138 0.0.0.0:* 21784/nmbd
udp 0 0 192.168.0.201:138 0.0.0.0:* 21784/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 21784/nmbd
Ovviamente, per questa guida userò il mio utente thece.
Codice: Seleziona tutto
cat /etc/passwd | grep thece
(output atteso)
thece:x:1000:1000:thece,,,:/home/thece:/bin/bash
Codice: Seleziona tutto
sudo smbpasswd -a thece
Verifico che l'utente thece sia stato aggiunto tra gli utenti di Samba
Codice: Seleziona tutto
sudo pdbedit -L
(output atteso)
thece:1000:thece
Per scrupolo, localmente al PC SERVER, verifico la connessione al servizio Samba usando il comando
Codice: Seleziona tutto
smbclient -L localhost -U="thece"%"SECRET"
Domanda: che cosa ho ottenuto con la precedente configurazione del servizio Samba?
Risposte:
- per ogni utente definito su Samba (e quindi sul sistema) è stato creato uno share "virtuale", privato per l'utente, con il quale viene condivisa la relativa Home Directory, sia in lettura che in scrittura (definizione dello share [homes])
- per ogni utente definito su Samba (e quindi sul sistema) è stato creato uno share temp, comune ad ogni utente, al quale è possibile accedere sia in lettura che in scrittura (definizione dello share [temp])