|
|
(196 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'''.
| |
| Di seguito descrivo un modello che potrete personalizzarvi poi:
| |
| <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.
| |
| | |
| <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 es. 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</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]]
| |