|
|
(193 versioni intermedie di 10 utenti non mostrate) |
Riga 1: |
Riga 1: |
| {{stub}} | | {{SAMBA |
| ==Introduzione== | | |precedente=Samba: guida rapida |
| Samba e' un diffusissimo software open source ideato nel 1991 da Andrew Tridgell e rilasciato sotto licenza GPL che permette la condivisione di risorse come directory e stampanti tra macchine windows e GNU/Linux (UNIX); si avvale sostanzialmente del protocollo SMB (server message block) originario microsoft e basato a sua volta sul protocollo NetBios (network basic input output system) sviluppato da IBM nel 1984. | | |successivo=Samba e OpenLDAP: creare un controller di dominio}}{{Versioni compatibili}}{{SAMBA1}} |
|
| |
|
| Si sceglie solitamente l'uso di Samba per poter condividere file e stampanti in una rete mista (macchine GNU/Linux, windows, mac os..), in modo da sfruttare un unico protocollo e un unico sistema di autenticazione.
| | == Introduzione == |
| | Samba è un diffusissimo software open-source, ideato nel 1991 da Andrew Tridgell e rilasciato sotto licenza GPL, che permette la condivisione di risorse come directory e stampanti fra gli host di una rete. Si avvale sostanzialmente del protocollo SMB (''server message block'') originario Microsoft, basato a sua volta sul protocollo NetBios (''network basic input output system'') sviluppato da IBM nel 1984. |
| | È un software semplicemente straordinario, la sua anima, il file <code>/etc/samba/smb.conf</code> è in perfetto stile Linux; cioè, lo stesso file, può divenire enorme e strutturatissimo oppure snello e semplicissimo, a seconda (''e questo è il vero stile Linux'') di quello che un utente vuole. |
|
| |
|
| ==La suite==
| | Si sceglie solitamente l'uso di Samba per poter condividere file e stampanti in una rete mista (''macchine GNU/Linux, MS-Windows, Mac OS..''), in modo da sfruttare un unico protocollo e un unico sistema di autenticazione. |
| Analizziamo i programmi che otteniamo dall' installazione della suite samba per Debian GNU/Linux:
| |
|
| |
|
| <pre># apt-get update && apt-get install samba smbfs</pre>
| | {{Autori |
| | |Autore = [[Utente:Zmo.zmo|zmo]] |
| | |Estesa_da = |
| | : [[Utente:Ferdybassi|Ferdybassi]] |
| | : [[Utente:Wtf|Wtf]] 20:48, 9 nov 2011 (CET) |
| | |Verificata_da = |
| | : [[Utente:Wtf|Wtf]] |
| | |Numero_revisori = 1 |
| | }} |
|
| |
|
| In breve:
| |
| * '''smbd''': questo demone gestisce le connessioni tcp/ip del server samba; gestisce le autenticazioni, da accesso ai filesystem e allo spooler di stampa.
| |
|
| |
|
| * '''nmbd''': questo demone gestisce il lato udp, rende note le risorse condivise tutte le volte che viene interrogato dai client. Per fare un esempio � quel demone che permette la visualizzazione dei serventi samba in Risorse di Rete nei sistemi ms-windows.
| | [[Categoria:Reti con Windows]] |
| | | [[Categoria:Samba]] |
| * '''smbclient''': programma client a riga di comando simile a ftp, dotato di diverse funzioni; tra le piu' importanti, quella di elencare le risorse messe in condivisione dai vari server samba in una rete.
| |
| | |
| * '''smbmount''' & '''smbumount''': utilizzati per montare/smontare filesystem condivisi.
| |
| | |
| * '''smbpasswd''': strumento per la creazione utenti samba. Un utente samba dovra' essere anche un utente presente sulla macchina.
| |
| | |
| * '''testparm''': strumento per la verifica del file '''/etc/samba/smb.conf.
| |
| | |
| ==Configurazione del server==
| |
| ===Sezione global===
| |
| Editiamo il file '''/etc/samba/smb.conf'''.
| |
| <pre>
| |
| [global]
| |
| allow hosts = 192.168.1.0/24
| |
| workgroup = debianizzati
| |
| server string = server@debianizzati.org
| |
| browsable = yes
| |
| create mask = 0755
| |
| </pre>
| |
| | |
| Con la sezione global all'interno del file smb.conf abbiamo settato quei parametri che saranno il modello generale di tutte le eventuali sezioni che verranno.
| |
| | |
| Ad esempio se nella successiva sezione, non specificassimo il parametro '''allow hosts''', verra' preso come riferimento 192.168.1.0/24.
| |
| | |
| ok, in breve:
| |
| * '''allow hosts''' = range di ip ai quali e' permesso l'accesso alla risorsa
| |
| * '''workgroup''' = nome del gruppo di lavoro
| |
| * '''server string''' = stringa che identifica il server
| |
| * '''browsable''' = rende visibile lo share
| |
| * '''create mask''' = determina i permessi dei file in condivisione
| |
| | |
| ===Condivisione di una directory===
| |
| Adesso sempre dentro il nostro smb.conf, creiamo la sezione specifica per la risorsa che vogliamo condividere. In questo esempio condivideremo una directory.
| |
| <pre>
| |
| [shared]
| |
| comment = Directory Shared
| |
| path = /dir/da/condividere
| |
| browsable = yes
| |
| read only = yes
| |
| public = yes
| |
| create mask = 0755
| |
| </pre>
| |
| | |
| Altri parametri:
| |
| * '''comment''' = commento per la directory
| |
| * '''path''' = percorso della dir condivisa
| |
| * '''public''' = rende la dir di libero accesso
| |
| * '''read only''' = setta i files della dir condivisa in sola lettura.
| |
| | |
| ===Condivisione di una stampante===
| |
| Adesso analizziamo i parametri da aggiungere al file '''smb.conf''' per poter condividere una stampante, ponendo per esempio che il sistema di stampa utilizzato dal server sia cups.
| |
| Aggiungiamo alla sezione '''global''':
| |
| <pre>
| |
| [global]
| |
| printing = cups
| |
| load printers = yes
| |
| </pre>
| |
| Creiamo inoltre la sezione '''printers''' che fornira' i parametri di accesso alle nostre stampanti:
| |
| <pre>
| |
| [printers]
| |
| comment = Stampanti Condivise
| |
| path = /var/spool/cups
| |
| browseable = no
| |
| public = yes
| |
| guest ok = yes
| |
| writable = no
| |
| printable = yes
| |
| </pre>
| |
| Dopodiche' scriviamo la sezione specifica per la nostra stampante (es. una canon), indicando alla voce '''path''' il percorso del nostro driver (solitamente /usr/share/cups/model):
| |
| <pre>
| |
| [canon]
| |
| path = /usr/share/cups/model/canon_xxx.ppd
| |
| printer name = canon
| |
| writable = yes
| |
| public = yes
| |
| printable = yes
| |
| print command = lp
| |
| </pre>
| |
| | |
| Ok, a questo punto il file puo' considerarsi configurato. Tuttavia questi sono solo pochissimi parametri. Potrete trovarli tutti a questa pag. tratta dal sito ufficiale di [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba].
| |
| | |
| ==Autenticazione==
| |
| Preoccupiamoci ora dell'accesso vero e proprio alla directory messa in condivisione. Possiamo creare un utente samba con smbpasswd, tenendo presente che un utente samba deve anche essere un utente presente sulla macchina, attribuendogli una password di nostra scelta:
| |
| | |
| <pre>
| |
| # smbpasswd -a utente
| |
| New SMB password: ****
| |
| Retype new SMB password: ****
| |
| </pre>
| |
| | |
| Questi sono user e pass coi quali ci loggheremo nel momento in cui monteremo dai client la dir condivisa con smbmount, o coi quali accederemo direttamente al server con smbclient.
| |
| | |
| Se volessimo inoltre consentire l'accesso a tutti gli utenti indistintamente, basterebbe inserire il parametro '''guest ok = yes''' nelle sezioni desiderate. Ad esempio nella sezione shared:
| |
| <pre>
| |
| [shared]
| |
| comment = Directory Shared
| |
| path = /dir/da/condividere
| |
| browsable = yes
| |
| read only = yes
| |
| public = yes
| |
| create mask = 0755
| |
| guest ok = yes
| |
| </pre>
| |
| | |
| Cosi' facendo potremo loggarci come ospiti digitando solo invio come password.
| |
| | |
| Bene, riavviamo il server:
| |
| <pre># /etc/init.d/samba restart</pre>
| |
| | |
| Adesso testiamo la validita' del file /etc/samba/smb.conf col comando:
| |
| | |
| <pre># testparm /etc/samba/smb.conf</pre>
| |
| | |
| Dovra' restituirvi fra le altre questa stringa:
| |
| <pre>Loaded services file OK.</pre>
| |
| | |
| ==Lato client==
| |
| Spostiamoci sul client e installiamo smbfs:
| |
| <pre># apt-get install smbfs</pre>
| |
| | |
| montiamo quindi la risorsa shared col comando:
| |
| <pre>$ smbmount //ip_del_server/shared /path/del/mountpoint</pre>
| |
| | |
| al momento che ci verra' chiesta la password, possiamo scegliere (in questo nostro caso) di digitare la pass assegnata all'utente samba, o digitare semplicemente �invio� per la presenza, nella sezione shared, del parametro guest ok = yes.
| |
| | |
| adesso possiamo listare il contenuto della dir condivisa:
| |
| <pre>$ ls /path/del/mountpoint</pre>
| |
| | |
| | |
| | |
| -------
| |
| | |
| Autore: [[Utente:_zmo_|zmo]]
| |