Condividere file, stampanti, cdrom e cartelle da windows a Linux.
Il protocollo di rete standard di windows, SMB o Server Message Block), è presente anche in mac os x e in linux. (SAMBA)
Funziona da windows verso linux e da linux verso windows o mac.
Usando il software server e client incluso.
In pratica si imposta il server samba, di solito su macchina linux
(non è obbligatorio; può essere su windows)
La procedura:
!)Creare un file smb.conf (di norma, su server linux, /etc/samba/smb.conf).
2)Aggiungere sezioni di condivisione di file, stampanti e tutto ciò che interessa a smb.conf.
3)Avviare samba. (o riavviare samba)
Il server offre una condivisione al client o più client.
Samba si compone di due demoni: nmbd e smbd il primo si occupa della risoluzione dei nomi (servizio wins e master browser list), il secondo è responsabile delle connessioni e delle operazioni di condivisione.
Quando un nuovo pc accede alla rete il gestore (NMBD) gli comunica la propria esistenza.
In risorse di rete non compare immediatamente il pc; ci mette del tempo.
Diverso tempo anche a scomparire dal elenco una volta spento il pc o client.
Se non c'è un servizio wins la risoluzione avviene tramite broadcast.
il pc server interroga tutti i computer della rete fino ad individuare il pc con il nome assegnato giusto.
Wins opera a livello di rete locale solo.
Esempio di file smb.conf
-----------------------------------------------------------------------
Codice:
[global]
# server name
netbios name = nome
# server description
server string = My server via samba
# workgroup
workgroup = mynetwork
# interfaces valide
interfaces = 10.23.2.0/255.255.255.0
bind interfaces = YES #dice che il traffico è consentito solo a 10.23.2.0/.....
#symlinks
follow symlinks = NO
Più altre che non ricordo.
Consultare il sito di samba.
-----------------------------------------------------------------------
Aggiungere sezioni di condivisione di file.
Esempio:
Sempre in /etc/samba/smb.conf
------------------------------------------------------------------------
Codice:
[etichetta]
path = percorso
comment = descrizione condivisione
guest ok = no
writable = yes
printable = no
veto files = /*.o/bin/ # esclude i file o directory chiamata bin.
Codice:
# export directory home
[homes]
comment = home directories
browseable = no
writable = yes
path = /u/%S # usate questo se la home è in un posto inusuale vedi windows.
Codice:
# stampanti
[printers]
comment = Printers
browseable = yes
printing = CUPS
path = cups
printable = yes
writable = no
-----------------------------------------------------------------------
Password.
La sicurezza impone l'accesso a un server samba tramite password.
Il problema è che windows usa un sistema di password differente da linux.
Si può comunque specificare password in chiaro, (da evitare) o creiate un file per le password alternativo. (serve ad autenticare le password con un server windows)
Creare il file /etc/samba/passwd_smb
Esempio:
/etc/samba/smb.conf
-----------------------------------------------------------------------
Codice:
[global]
....
# use a separate password file Samba to enable encrypted passwords
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/passwd_smb
# Accesso dominio windows NT
security = domain
-----------------------------------------------------------------------
Alla fine riavviare sambai.
I commandi qui evidenziati sono obsoleti.
I due demoni devono essere attivati nel ordine: prima nmbd e poi smbd
Avviare il server cosi. (da terminale come root)
Codice:
nmbd -D -s /etc/samba/smb.conf
o
Codice:
/etc/init.d/nmbd start
Codice:
smbd -D -s /etc/samba/smb.conf
Codice:
/etc/init.d/smbd start
Verificare se gli script di avvio si trovano al loro posto /etc/init.d/.
In opensuse andare in Centro di controllo Yast > Editor dei runlevel e attivare nmb e smb
Codice:
rcsmb [start restart reload stop]
Codice:
service smb [start restart reload stop]
Avviare e fermare samba. (in ubuntu)
Codice:
sudo /etc/init.d/samba start
Codice:
sudo /etc/init.d/samba restart
Codice:
sudo /etc/init.d/samba stop
Codice:
sudo /etc/init.d/samba reload
In alcuni casi:
Codice:
/etc/rc.d/init.d/samba start
I commandi qui evidenziati sono obsoleti. Più avvanti gli cancellerò.
Codice:
/usr/sbin/nmbd -D
Codice:
/usr/sbin/smbd -D
Può essere utile fermarli:
Codice:
killall -HUP smbd
Codice:
killall -HUP nmbd
Ora gli utenti possono aggiungersi nel file passwd_smb con il commando da terminale:
Codice:
smbpasswd -a nome che vuoi dare tu al utente.
Per eliminare un utente:
Codice:
smbpasswd -x nomeutente
Le opzioni -d (disabilita l'utente) -e (riabilita utente).
Per comunicare con un server windows esiste il programma samba smbclient.
Da terminale:
Codice:
smbclient -L -U nomeutente nomewindowserver
Verrà chiesta la password.
Si può impostare il nomeutente uguale sia su windows che linux.
in questo caso si può tralasciare il nome utente dal commando sopra riportato.
Accedere a file.
Commando da terminale:
Codice:
smbclient -U nomeutente \\nomewindowserver\nome filecondiviso
Si ottiene un prompt come questo:
Digitando help si ottengono i commandi disponibili.
Montaggio della condivisione per uso frequente.
Codice:
smbmount \\nomewindowserver\nome condivisione -c mount puntomontaggio -U nomeutente -P password
Punto di montaggio potrebbe essere /mnt/nomecondivisione su linux
Va creata la directory:
sudo mkdir /mnt/nomecondivisione
Link utili:
http://wiki.ubuntu-it.org/Server/Samba
Mi fermo qui per non creare confusione.
Quello sopra descritto può essere configurato con applicazioni grafiche.
Basta andare nel gestore pacchetti della distribuzione linux e digitare samba in cerca.
Vedrete selezionati tutti i pacchetti inerenti al programma samba.
Non resta altro che sperimentare il tutto per scegliere il meglio.
Non mancate di segnalare gli errori da me commessi in questa guida.
Spero di essere utile a qualcuno.
Ciao.
Segnalibri