Archivio

Posts Tagged ‘samba’

Samba come controller di dominio

12 gennaio 2010

Samba come controller di dominio

Benché non possa funzionare come un controller di dominio primario (PDC) Active Directory, un server Samba può essere configurato per apparire come un controller di dominio in stile Windows NT4. Uno dei vantaggi di questa configurazione consiste nell’abilità di centralizzare le credenziali di utenti e computer, inoltre, Samba può utilizzare diversi backend per archiviare le informazioni.

Controller di dominio primario (PDC)

Questa sezione spiega come configurare Samba come controller di dominio primario (PDC) usando il backend predefinito «smbpasswd».

  1. Per prima cosa, installare Samba e libpam-smbpass per sincronizzare gli account utente digitando quanto segue in un terminale:
    sudo apt-get install samba libpam-smbpass
    
  2. Configurare Samba modificando il file /etc/samba/smb.conf. La variabile security dovrebbe essere impostata a user e il workgroup dovrebbe essere relativo alla propria organizzazione.
       workgroup = ESEMPIO
       ...
       security = user
    
  3. Nelle sezione «Domains» aggiungere o togliere il commento a quanto segue:
       domain logons = yes
       logon path = \\%N\%U\profile
       logon drive = H:
       logon home = \\%N\%U
       logon script = logon.cmd
       add machine script = sudo /usr/sbin/useradd -n -g machines -c Machine -d /var/lib/samba -s /bin/false %u
    
    • domain logons: fornisce il servizio netlogon facendo in modo che Samba si comporti come un controller di dominio.
    • logon path: posiziona il profilo degli utenti Windows all’interno della loro directory home. È possibile anche configurare una condivisione [profiles] posizionando tutti i profili all’interno di una sola directory.
    • logon drive: specifica il percorso locale della directory home.
    • logon home: specifica la posizione della directory home.
    • logon script: determina quale script eseguire localmente una volta che un utente ha eseguito l’accesso. Lo script deve essere all’interno della condivisione [netlogon].
    • add machine script: uno script che crea automaticamente lo Machine Trust Account necessario per accedere al dominio.In questo esempio il gruppo machines deve essere creato usando l’utilità addgroup. Per maggiori informazioni, consultare la sezione chiamata «Aggiungere e rimuovere utenti».
    [Nota]
    Per non usare i profili roaming, non togliere il commento alle opzioni logon home e logon path.
  4. Togliere il commento alla condivisione [homes] per consentire la mappatura di logon home:
    [homes]
       comment = Home Directories
       browseable = no
       read only = no
       create mask = 0700
       directory mask = 0700
       valid users = %S
    
  5. Quando configurato come controller di dominio, è necessario configurare una condivisione [netlogon]. Per abilitarla, togliere il commento a:
    [netlogon]
       comment = Network Logon Service
       path = /srv/samba/netlogon
       guest ok = yes
       read only = yes
       share modes = no
    
    [Nota]
    Il percorso della condivisione predefinita di netlogon è /home/samba/netlogon, ma in base allo «Filesystem Hierarchy Standard» (FHS), /srv è la corretta posizione i cui dovrebbero essere tenuti i file specifici dei siti forniti dal sistema.
  6. Creare la directory netlogon e un file logon.cmd per ora vuoto:
    sudo mkdir -p /srv/samba/netlogon
    sudo touch /srv/samba/netlogon/logon.cmd
    

    È possibile inserire qualsiasi comando di logon Windows in logon.cmd per personalizzare l’ambiente del client.

  7. Con l’utente root disabilitato in modo predefinito, per poter inserire una workstation nel dominio, un gruppo di sistema deve essere mappato al gruppo Windows Domain Admins. Usando l’utilità net, da un terminale digitare:
    sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d
    
    [Nota]
    Modificare sysadmin con un qualsiasi altro gruppo si voglia usare. Inoltre, l’utente usato per unirsi al dominio deve essere membro del gruppo sysadmin oltre al gruppo admin. Il gruppo admin consente l’utilizzo di sudo.
  8. Riavviare Samba per abilitare il nuovo controller di dominio:
    sudo /etc/init.d/samba restart
    
  9. Dovrebbe ora essere possibile unire i client Windows al dominio come in un dominio NT4 in esecuzione su un server Windows.

Controller di dominio di backup

Con la presenza di un controller di dominio primario (PDC) all’interno delle rete è utile avere anche un controller di dominio di backup (BDC). In questo modo i client potranno autenticarsi anche nel caso in cui il PDC non sia più disponibile.

Quando si configura Samba come BDC, è necessario avere un metodo di sincronizzazione delle informazioni sugli account con il PDC. A questo scopo è possibile usare scp, rsync oppure LDAP come backend passdb.

Il metodo migliore per sincronizzare le informazioni sugli account consiste nell’usare LDAP, poiché entrambi i controller di dominio possono usare le stesse informazioni in tempo reale. Configurare un server LDAP potrebbe essere troppo complicato per un esiguo numero di utenti e computer. Per maggiori informazioni, consultare la sezione chiamata «Samba e LDAP».

  1. Installare samba e libpam-smbpass. Da un terminale digitare:
    sudo apt-get install samba libpam-smbpass
    
  2. Modificare il file /etc/samba/smb.conf e togliere il commento a quanto segue nella sezione [global]:
       workgroup = ESEMPIO
       ...
       security = user
    
  3. Nella sezione Domains togliere il commento o aggiungere quanto segue:
       domain logons = yes
       domain master = no
    
  4. Assicurarsi che un utente abbia i permessi di lettura sui file in /var/lib/samba. Per esempio, per consentire agli utenti del gruppo admin di eseguire scp sui file, digitare:
    sudo chgrp -R admin /var/lib/samba
    
  5. Sincronizzare gli account utente usando scp per copiare la directory /var/lib/samba dal PDC:
    sudo scp -r NOME_UTENTE@PDC:/var/lib/samba /var/lib
    
    [Nota]
    Sostituire NOME_UTENTE con un nome utente valido e PDC con il nome host o l’indirizzo IP del controller di dominio primario.
  6. Riavviare samba:
    sudo /etc/init.d/samba restart
    

È possibile verificare se il controller di dominio di backup è funzionante fermando il demone Samba sul PDC e quindi cercando di eseguire l’accesso su un client Windows all’interno del dominio.

È utile ricordare anche che se è stata configurata l’opzione logon home come directory sul PDC e quest’ultimo non è più disponibile, anche l’accesso al drive home degli utenti non lo sarà. Per questo motivo è utile configurare logon home affinché sia posizionato in un server di file separato da PDC e BDC.

Accorgimenti per Ubuntu come PDC Samba

Published by Lorenzo at 7:05 pm under Debian / Ubuntu, Linux, Samba, Server

Per installare Samba su Ubuntu, il problema non è tanto l’installazione in sé, ma il fatto che Ubuntu ha l’utente root disabilitato, e quindi bisogna prendere particolari accorgimenti.

Per prima cosa, non credo sia necessario, ma io assegno una password all’utente root, tramite il comando

$ sudo -s -H

# passwd root

Poi, una volta installato Samba, bisogna aver cura nella configurazione del file smb.conf, di mettere nello script di aggiunta della macchina nel dominio questo comando:

add machine script = sudo /usr/sbin/useradd -d /dev/null -g gruppocomputers -s /bin/false %u

dove gruppocomputers è il gruppo che andrà creato in Linux che conterrà gli account macchina di tutti i PC connessi al dominio. Il gruppo sarà creato tramite questo comando:

$ sudo groupadd gruppocomputers

Altro problema, è il fatto che il comando nello script inizia con l’istruzione sudo, che però richiederebbe la password per funzionare, quindi, bisogna fare in modo che il comando sudo non richieda la password utilizzando il comando sudo visudo ed impostando questa riga:

utenteiniziale ALL=(ALL) NOPASSWD:ALL

dove per utenteiniziale si intende l’utente creato in fase d’installazione di Ubuntu. A questo punto, riapplicare i permessi originari del file tramite il comando

# chmod 440 /etc/sudoers

L’ultimo passaggio, è quello di creare l’utente root in Samba, dandogli la stessa password che è stata assegnata in precedenza all’utente root su Linux. Ciò serve perché è necessario indicare l’utente root da Windows quando si fa il join sul dominio Samba, ho provato inserendo l’utente iniziale ma Samba mi ha risposto con un poderoso gesto dell’ombrello. Quindi:

$ sudo smbpasswd -a root

E il gioco è fatto. Ora i client dovrebbero connettersi senza problemi al dominio, ovviamente, tutte le altre voci di configurazione devono essere impostate in modo appropriato.
A questo punto sorge un problema, cioè che quando si fa il join al dominio, l’utente root, che è l’amministratore del dominio, non fa parte del gruppo Domain Admins, ed in questo modo, l’utente root non è amministratore locale delle macchine connesse al dominio. Per fare in modo di mappare il gruppo Domain Admins col gruppo di Linux root, bisogna utilizzare questo comando:

$ sudo net groupmap modify ntgroup=”Domain Admins” unixgroup=root

Per impostare Samba come print server, bisogna per prima cosa installare CUPS col comando

$ sudo apt-get install cupsys cupsys-client

quindi, bisogna dare queste direttive nella sezione global in smb.conf

printing = CUPS
printcap = CUPS e poi, creare una condivisione printers con questi parametri

[printers]
path = /var/spool/samba printable = YES
use client driver = YES

A questo punto bisogna creare la cartella /var/spool/samba e quindi dare a tutti gli utenti tutti i permessi su questa cartella

$ sudo mkdir /var/spool/samba
$ sudo chmod 777 /var/spool/samba/

Rimangono da modificare due file di configurazione di CUPS, in modo da permettere la stampa in RAW. I file da modificare sono /etc/cups/mime.types e /etc/cups/mime.convs, in cui va decommentata la riga application/octet-stream se commentata. Fatto questo, va creata la stampante condivisa sulla porta parallela del server, tramite questo comando:

$ sudo lpadmin –p NOMESTAMPANTE –v parallel:/dev/lp0 –E

dove per NOMESTAMPANTE si intende il nome della stampante condivisa sul server Samba. Riavviare il demone CUPS sul server tramite il comando

$ sudo /etc/init.d/cupsys restart

Riferimenti:
http://www.howtoforge.com/samba_setup_ubuntu_5.10
http://www.osservatoriotecnologico.it/reti/how-to/file_server_samba.htm

Risorse

  • Per delle configurazioni più dettagliate riguardo Samba, consultare Samba HOWTO Collection
  • La guida è disponibile anche in formato cartaceo.
  • Il libro Using Samba di O’Reilly è un’altra buona lettura.
  • Il capitolo 4 della «Samba HOWTO Collection» spiega come configurare un controller di dominio primario.
  • Il capitolo 5 della «Samba HOWTO Collection» spiega come configurare un controller di dominio di backup.
Share

Tips Linux e Microsoft

Cartelle condivise fra Windows e Linux/Ubuntu

12 gennaio 2010
In questo tutorial si spiegherà come è possibile condividere una cartella fra due sistemi operativi, il primo che utilizza Linux/Ubuntu e il secondo che utilizza Windows Vista (qualsiasi versione).
La prima cosa da fare è assicurarsi di disattivare almeno fino alla fine della procedura qualsiasi tipo di Antivirus/Firewall da Windows Vista al solo fine di escludere, nel caso di problemi, che la procedura eseguita correttamente venga bloccata da altri programmi. (Nel caso funzioni tutto correttamente sarà possibile in seguito informare i vari Antivirus/Firewall che la condivisione delle cartelle è sicura e che non dovranno interferire con il suo funzionamento).

Terminata la premessa cominciamo creando sulla macchina Windows Vista la cartella condivisa nel seguente modo:
1) Creare una nuova cartella o selezionarne una esistente sulla quale si desidera attivare la condivisione, premere il tasto destro sulla cartella e andare su Proprietà > Condivisione cartella > Condivisione avanzata
2) Spuntare l’opzione “Condividi cartella” e inserire il nome utilizzato per la visualizzazione in rete di questa cartella. (In questo tutorial verrà utilizzato il nome ‘share’ per questa cartella)
Nota: evitare di utilizzare nomi separati da spazi bianchi, è bene utilizzare il carattere underscore _ per dividere eventuali parole come ad esempio ‘cartella_condivisa’.
3) Cliccare sul tasto “Autorizzazioni” e settare i permessi sia in lettura che in scrittura se si desidera permettere a chi accede a questa cartella sia di scrivere che di leggere.
4) A questo punto la cartella condovisa sulla macchina Windows Vista è stata creata correttamente e questo sarà visibile anche graficamente grazie all’icona della cartella che sarà cambiata dopo queste operazioni.
5) L’ultimo passo da fare è selezionare la cartella appena condivisa, cliccare con il destro e andare su Proprietà > Condivisione dove è possibile visualizzare il percorso di rete tramite il quale sarà possibile da altri computer raggiungere ed utilizzare questa cartella condovisa. (nel caso di questo tutorial il percorso di rete è “\\PC-TEST\share“)

La macchina con installato Windows Vista ora dispone di una cartella condivisa chiamata “share” posizionata in “\\PC-TEST\share” in cui è possibile leggere/scrivere file tramite altri computer connessi in rete.

Passiamo ora alla configurazione della macchina Linux/Ubuntu!
Per prima cosa sarà necessario installare Samba, il software che si prenderà la responsabilità di gestire l’accesso alla nostra cartella condivisa (e non solo!):
1) Aprire la console e dare i seguenti comandi per effettuale l’installazione di Samba:

sudo apt-get install samba

sudo apt-get install samba smbfs samba-client

2) Samba è gestito completamente tramite il file di configurazione “smb.conf” situato nella directory /etc/samba e sarà qui che bisognerà scrivere le impostazioni per rendere possibile la condivisione della cartella. Per motivi di pura sicurezza verrà effettuato con il prossimo comando una copia di backup dell’attuale file di configurazione in modo che possa venir ripristinato in caso di necessità:

sudo cp -p /etc/samba/smb.conf /etc/samba/smb.conf.bak

3) Se si desidera creare una nuova cartella da condividere è possibile crearla utilizzando il comando:

sudo mkdir /home/condiv

E’ necessario ora tenere presente dove è situata la cartella che si desidera condividere (in questo tutorial “/home/condiv“) indipendentemente dal fatto che sia stata creata con il precedente comando o che esisteva già.

4) Impostare i permessi sulla cartella da condividere di lettura/scrittura/esecuzione:

sudo chmod 777 /home/condiv

5) [Facoltativo] A questo punto è buona regola impostare un utente che abbia accesso alla cartella condivisa, supponiamo di creare il nuovo utente che potrà connettersi ed utilizzare la cartella condivisa:

sudo useradd -c “utilizzatore” -m -g users -p pass alex

con questo comando è stato creato l’utente ‘utilizzatore’ appartenente al gruppo ‘users’ con password ‘pass’ e nome dell’utente impostato come ‘alex’.
Aggiungiamo ora questo utente alla lista degli utenti di Samba con il seguente comando:

sudo smbpasswd -a alex

dopo questo comando sarà richiesta la password per l’utente alex e dopo il corretto inserimento della password l’utente sarà aggiunto alla lista degli utenti di Samba. La password che dovrà essere inserita è la stessa utilizzata durante la creazione dell’utente (nel tutorial ‘pass’).
Nota: E’ possibile invece rimuovere gli utenti dalla lista di Samba utilizzando semplicemente al posto dell’opzione -a l’opzione -x

6) A questo punto bisogna informare Samba delle decisioni prese modificando il file di configurazione /etc/samba/smb.conf

sudo gedit /etc/samba/smb.conf

verrà aperto tramite il programma grafico gedit il file di configurazione, spostarsi alla sezione “Share Definitions” e prima della riga [printers] scrivere le seguenti impostazioni:

[Cartella_condivisa_linux]
path = /home/condiv
available = yes
browsable = yes
public = yes
writable = yes    #per impostare sola-lettura scrivere no
create mask = 0777
directory mask = 0777

salvare e chiudere. Per verificare la correttezza delle nuove impostazioni inserite dare il comando:

sudo testparm

Ogni volta che verrà modificato il file smb.conf sarà necessario riavviare Samba in modo che possa leggere le nuove impostazioni ed utilizzarle:

sudo /etc/init.d/samba restart

7) Finalmente ora sarà possibile collegarsi alla macchina Windows Vista utilizzando il seguente comando:

sudo smbclient //nome_pc/nome_cartella/ -U utente%password

nel nostro caso quindi si dovrà utilizzare il comando:

sudo smbclient //PC-TEST/share -U alex%pass

dove il simbolo % divide il nome utente dalla password dell’utente stesso.

8) Ora dovrebbe essere mostrato un messaggio di benvenuto simile a questo:
Domain=[PC-NIBBLE] OS=[Windows Vista (TM) Home Premium 6001 Service Pack 1] Server=[Windows Vista (TM) Home Premium 6.0]
smb: \>

indicante il fatto che da questo momento ci si potrà muovere liberamente nella cartella condivisa ed utilizzare comandi come cd, ls ecc.

Dalla macchina Windows Vista invece basterà andare su Rete attraverso il pannello Start, selezionare il computer Linux/Ubuntu ed accedere alla cartella condivisa (nel nostro caso chiamata ‘condiv’).

Se si desidera invece utilizzare un ambiente grafico in Linux/Ubuntu per poter navigare le cartelle condivise, come in Windows Vista, sarà necessario aprire il pannello “Rete” (o simile) dal pannello delle applicazioni selezionare il computer da raggiungere (nel nostro caso //PC-TEST/) e selezionare la cartella condivisa!

Nota: E’ possibile che i due computer non si riescano a connettere o addirittura non si rilevino proprio, questo è dovuto al fatto che molto probabilmente non appartengolo allo stesso ‘workgroup‘. E’ necessario quindi impostare in /etc/samba/smb.conf nella sezione ‘global’ lo stesso workgroup utilizzato da Windows Vista.

Share

Tips Linux e Microsoft

Samba configurazione in Ubuntu Linux

29 aprile 2009

Samba

Esistono due sistemi di condivisione molto utilizzati:

  • Samba: il sistema compatibile con le condivisioni di Windows
  • NFS: il sistema storicamente usato su Unix e Linux

Per comodità e più possibilità utilizzeremo il servizio Samba: ci consentirà infatti di utilizzare le nostre condivisioni anche su sistemi Windows oltre che Linux.

Avviare Cartelle condivise

La loro configurazione iniziale è estremamente semplice: aprendo il menu Sistema, all’interno della cartella Amministrazione troviamo Cartelle condivise.

Se non abbiamo mai installato né Samba né NFS ci sarà richiesto di installare almeno uno dei due. Come abbiamo detto preferiremo Samba, per cui toglieremo la spunta su Installare il supporto a reti Unix (NFS), lasceremo soltanto il secondo e cliccheremo su Installazione servizi.

I servizi di condivisione non sono installati Scaricamento file dei pacchetti

Verrà avviata automaticamente la procedura per lo scaricamento e l’installazione dei pacchetti. Al termine della procedura torneremo alla finestra di gestione delle condivisioni.

Cartelle condivise Proprietà generali

La finestra è divisa in due schede: la prima chiamata Cartelle condivise mostra le cartelle già condivise mentre la seconda Proprietà generali consente di cambiare il nome del gruppo di lavoro. Quello predefinito è MSHOME.

Cliccando su Aggiungi sarà possibile aggiungere una nuova condivisione: dovremo soltanto scegliere la cartella da condividere, il protocollo (Rete di tipo Windows), il nome da assegnare alla condivisione, un eventuale commento e decidere se la cartella sarà di sola lettura o sarà permessa anche la scrittura. Quest’ultima regola sarà poi sottoposta agli eventuali permessi, ma una condivisione in sola lettura non sarà mai modificabile anche se l’utente è autorizzato alla scrittura.

Condividi cartella paperotto Condividi cartella Examples

Per il nostro scopo aggiungeremo due condivisioni: la cartella home dell’utente paperotto e la cartella Examples dentro la home dell’utente. Quest’ultima sarà segnata come Sola lettura.

Cartelle condiviseConfermato l’inserimento delle due cartelle la finestra delle cartelle condivise ce le mostrerà entrambe. Naturalmente possiamo in ogni momento eliminarle o modificarle.

Fatto ciò il passaggio è quasi completato. Le cartelle sono condivise regolarmente, possiamo già collegarci utilizzando il nome del computer oppure l’indirizzo IP e osservare le condivisioni tramite il menu Risorse, Rete come spiegato su Connettere una condivisione Windows o un sito FTP.

Possono tuttavia capitare alcuni problemi nell’accesso, uno dei quali è dovuto al nome del computer assegnato durante l’installazione. Infatti Ubuntu all’installazione assegna come nome del computer, il nome dell’utente principale seguito da -desktop, ad esempio se l’utente principale è paperotto, il nome del computer sarà paperotto-desktop.

Sebbene questo comportamento può essere modificato in fase di installazione, se è stato assegnato un nome del computer più lungo di 15 caratteri ci saranno problemi nello sfogliare le risorse condivise sia da Windows che da Linux. In una condizione del genere abbiamo due possibilità: la prima è quella di cambiare il nome del computer dalla gestione della rete (network-admin), la seconda invece consiste nel cambiare il nome del computer usato da Samba. Per far ciò è necessario modificare il file smb.conf con questo comando:

gksudo gedit /etc/samba/smb.conf

E inserire all’interno della zona Global:

netbios name = nomecomputer

Nel nostro esempio daremo come nome paperotto, Samba vedrà il computer condiviso con questo nome anziché quello usato dal sistema.

Tramite Linux adesso sarà possibile navigare tra le condivisioni in maniera anonima, senza la necessità di inserire utente e password, ma nella condizione attuale sarà possibile soltanto leggere ma non apportare modifiche ai files o alle cartelle condivise.

Vedremo in seguito come assegnare dei criteri di accesso, come modificare i files delle cartelle condivise e come accedere da sistemi Windows.

Configurazione avanzata di Samba

L’interfaccia guidata per la creazione delle cartelle condivise mediante Samba consente di specificare solo il nome della condivisione, il suo percorso, un commento e lo stato di sola lettura, decisamente troppo poco per poter utilizzare Samba al meglio.

Per configurare tutte le opzioni di Samba è necessario modificare il file di configurazione di Samba, posto su /etc/samba/smb.conf tramite utente root. Per far ciò basterà premere Alt+F2 e scrivere:

gksudo gedit /etc/samba/smb.conf

Le righe che iniziano per “#” o per “;” identificano dei commenti, cioè potremo scriverci qualsiasi cosa, Samba non le considererà parte della configurazione e le ignorerà. Per convenzione si utilizza il simbolo “#” per scriverci testo o spiegazioni mentre il “;” per disabilitare un’istruzione: basta togliere il simbolo all’inizio per utilizzare nuovamente quell’istruzione.

La modalità di accesso predefinita alle condivisioni di Samba è quella definita per utente (user), che cioè richiede l’utilizzo di una coppia utente/password registrata sul sistema in cui si accede. Un’altra modalità di accesso tipica di Samba è quella per condivisione (share) e consente di regolare gli accessi su ogni singola condivisione definendo gli accessi direttamente nelle impostazioni delle singole condivisioni.

Attivando la modalità per condivisione potremo configurare gli accessi per le singole condivisioni anziché restringere l’accesso ai soli utenti registrati nel sistema. All’interno del file smb.conf troveremo una riga security = user (disabilitata). Rimuovendo il “;” e cambiando la modalità di accesso per utente alla modalità per condivisione permetteremo l’accesso al server Samba anche senza l’utilizzo di un utente esistente sul server. Sarà naturalmente nostro compito regolare gli accessi alle singole condivisioni. Modificare la riga security come indicato:

security = share

In fondo al file di configurazione troveremo le condivisioni e le definizioni dei permessi alle stesse. La riga tra parentesi quadre identifica la condivisione e delimita l’inizio delle definizioni per la stessa. Al suo seguito possono esserci alcune delle seguenti istruzioni:

  • path = percorso
    Indica il percorso fisico della cartella condivisa
  • comment = commento alla condivisione
    Identifica il commento alla condivisione, sarà mostrato quando verranno richiesti dettagli sulla condivisione
  • available = yes|no
    Consente di attivare (yes) o disattivare (no) la condivisione
  • browsable = yes|no
    Mostrerà (con yes) o nasconderà (con no) la condivisione sfogliando la rete. Una condivisione nascosta è pienamente funzionale ma chi non ne conosce il nome non potrà accedervi
  • writable = yes|no
    Descrive la possibilità di scrittura all’interno della condivisione. Se impostata a no non sarà consentita alcuna modifica a files o cartelle, anche se il nostro utente o i permessi lo consentono; al contrario yes indicherà che Samba consentirà la modifica del contenuto, a patto che l’utente abbia i permessi necessari
  • read only = yes|no
    Rappresenta l’esatto opposto all’istruzione writable, se viene assegnato yes, la condivisione sarà sempre in sola lettura mentre su no Samba consentirà la modifica del contenuto. Utilizzare a scelta writable o read only
  • guest ok = yes|no
    Consente l’accesso alla condivisione da parte di utenti anonimi. Se ci si connette con un utente autorizzato sarà connesso quell’utente altrimenti si verrà connessi come guest/anonimo
  • public = yes|no
    Sinonimo dell’istruzione guest ok
  • guest account = utente
    Consente di specificare l’utente che verrà usato per le connessioni anonime. Se qualcuno tenta di connettersi alla condivisione e non possiede espliciti accessi verrà collegato come anonimo e svolgerà le operazioni con l’utente indicato in questa istruzione. Generalmente viene utilizzato l’utente nobody
  • guest only = yes|no
    Forza l’utilizzo dell’utente anonimo anche se chi accede possiede una connessione con un utente autorizzato. Richiede la presenza di guest ok = yes
  • valid users = elenco utenti
    Permette di specificare un esplicito elenco di utenti che potranno accedere alla condivisione
  • invalid users = elenco utenti
    Consente di specificare un esplicito elenco di utenti ai quali sarà sempre vietato di accedere alla condivisione
  • force user = utente
    Forza l’utilizzo di un particolare utente per le operazioni sui files e cartelle. Non riguarda in alcun modo l’autenticazione che richiede comunque un utente autorizzato o che sia abilitato l’accesso anonimo
  • force group = gruppo
    Forza l’utilizzo di un particolare gruppo per le operazioni sui files e cartelle

Le seguenti istruzioni possono essere usate solo quando la modalità security non è impostata su share ma ad esempio su user:

  • admin users = elenco utenti
    Specifica un elenco di utenti che potranno accedere alla condivisione come se fossero root, superando qualsiasi limitazione imposta sia da Samba che dai permessi su files e cartelle. Da usare con estrema cautela.
  • read list = elenco utenti
    Consente di specificare un elenco di utenti che avranno comunque accesso in sola lettura anche se per la condivisione è stato specificato writable = yes (o read only = no)
  • write list = elenco utenti
    Consente di specificare un elenco di utenti con possibilità di scrittura anche se la condivisione è impostata in sola lettura
  • map to guest = Bad User|Bad Password
    Trasforma in anonimi gli utenti che forniscono utenti inesistenti (Bad User) o password errate (Bad Password). Questa impostazione consente di utilizzare l’accesso anonimo anche con la modalità security su user

Dove è richiesto l’inserimento di un elenco utenti è possibile specificare uno o più utenti separati da spazio. Gli utenti possono essere sia quelli che accedono al sistema sia utenti creati appositamente per Samba. Oltre agli utenti possono essere indicati anche nomi di gruppi di utenti semplicemente anteponendo @ al nome del gruppo.

Molte delle istruzioni qui presentate possono essere inserite nella sezione [global] del file di configurazione e saranno valide per tutte le condivisioni che non specifichino in maniera differente. Per impostazione predefinita ad esempio il gruppo di utenti non validi (invalid users) contiene l’utente root, anche se non specificato all’interno delle singole condivisioni.

Le condivisioni create con la configurazione delle condivisioni sono generate come segue:

[paperotto]
path = /home/paperotto
comment = Cartella Home di paperotto
available = yes
browsable = yes
public = yes
writable = yes

[Examples]
path = /home/paperotto/Examples
comment = Cartella Examples in sola lettura
available = yes
browsable = yes
public = yes
writable = no

Possiamo quindi notare che sono generate abilitate, visibili nella rete, con accesso anonimo abilitato e a seconda della scelta in sola lettura o meno. Non sono presentati permessi di alcun genere, né limitazioni esplicite. Gli utenti anonimi opereranno con l’utente nobody, per cui nel caso volessimo conceder loro permessi di scrittura dovremmo assicurarci che la cartella condivisa abbia i permessi per l’utente nobody.

Dopo aver apportato modifiche al file di configurazione è necessario far ricaricare a Samba il file tramite il comando da terminale:

sudo /etc/init.d/samba reload

La man page di smb.conf spiega bene i differenti parametri ammessi. Infine una guida in inglese completa a Samba e alla sua configurazione è disponibile sul sito di Samba.

Condividere una cartella con Samba su Ubuntu 8.04

Ne avevamo già parlato in passato, su Ubuntu 7.10 la condivisione delle cartelle richiedeva giusto un paio di click, sempre che non si verificassero problemi col nome del computer. Poi se gli utenti che accedono fanno parte di una rete Windows il discorso si complica un po’, rischiando infine di dover effettuare una configurazione avanzata di Samba.

Su Ubuntu 8.04 questa storia non si ripete, la condivisione delle cartelle con Samba e con Windows è diventata davvero semplice.

Il vecchio pannello di configurazione di Samba (shares-admin) è stato nascosto dai menu, perché ormai inutile per una semplice condivisione di cartelle. Basterà un click col tasto destro sopra una cartella e scegliere Opzioni di condivisione.

Sarà presentata una finestrella sintetica inizialmente senza la spunta su Condividere questa cartella. Basterà cliccare sulla spunta per consentire alla condivisione della cartella.

Se non era stato installato in precedenza il servizio Samba verrà richiesto di installarlo, cliccando sul pulsante Installa servizio. Quando richiesto immettere la propria password per avviare l’installazione.

L’installazione del servizio Samba procederà automaticamente, basterà premere Chiudi al termine dell’installazione. A questo punto della procedura, anche se non indicato si raccomanda di disconnettere il proprio utente dal menu Sistema – Esci – Termina sessione, quindi accedere nuovamente e riavviare la condivisione, per consentire l’applicazione dei permessi al proprio utente.

Al termine dell’installazione si tornerà automaticamente alla finestra della condivisione, la prima spunta consente la condivisione normale mediante utenti registrati sul sistema, ovvero soltanto chi possiede un utente e la relativa parola d’ordine potrà accedere alla condivisione.

La seconda spunta Consentire ad altre persone di scrivere in questa cartella regola la possibilità di far apportare modifiche all’interno della cartella, senza la quale avremmo una condivisione in sola lettura.

L’ultima spunta Accesso ospite consente anche ad utenti anonimi, senza un proprio utente sul sistema, di accedere alla cartella, impersonando l’utente nobody. Ciò significa che chiunque potrà accedere alla condivisione, leggere i files condivisi e apportare modifiche se è stato scelto di consentire la scrittura.

Cliccare Crea condivisione per confermare i dati immessi e controllare i permessi della cartella, se compatibili con quelli qui scelti.

Se è stato scelto di consentire l’accesso agli utenti anonimi sarà necessario reimpostare i permessi alla cartella e la finestra successiva consentirà di farlo automaticamente.

Fatto ciò la condivisione è terminata, è possibile provare sin da subito a connettersi alla condivisione Samba tramite Ubuntu oppure con Windows.


Qualora si presentasse la seguente situazione in cui si illumina di rosso il nome della condivisione e in fondo è mostrato il messaggio di errore “net usershare” ha restituito l’errore 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error Permesso negato nessuna paura.

Se non si è riavviata la sessione dopo l’installazione di Samba, procedere al riavvio e ritentare l’operazione, quasi sicuramente l’errore andrà via, il nostro utente ha guadagnato il permesso al gruppo sambashare ma senza riavvio della sessione, non ne potrà godere.

Qualora anche dopo il riavvio venisse mostrato lo stesso errore è necessario intervenire sul gruppo degli utenti sambashare.

Avviare la gestione dei gruppi di utenti dal menu Sistema – Amministrazione – Utenti e gruppi (consultare l’articolo sulla configurazione dei gruppi in caso di dubbi), cliccare il pulsante Sblocca per consentire le modifiche ai permessi e quindi su Gestisci gruppi.

Cliccare sul gruppo sambashare e quindi sul pulsante Proprietà. Nella finestra mostrata immettere la spunta sopra il nostro utente, nella figura paperotto. Confermare il tutto con OK, chiudere tutto, disconnettere la sessione e rilanciare la condivisione.


Per chi si chiedesse che fine ha fatto la vecchia finestra di amministrazione delle condivisioni, è ancora presente, richiamabile con ALT+F2 e scrivendo il comando shares-admin. Tuttavia col nuovo metodo di condivisione di Samba, le singole cartelle condivise mediante Nautilus non saranno visibili; sarà invece possibile cambiare il nome del gruppo di lavoro e decidere quali utenti potranno accedere con Samba.

Il file /etc/samba/smb.conf non conterrà le condivisioni create mediante Nautilus. Le nuove condivisioni potranno trovarsi su /var/lib/samba/usershares dove ogni file identificherà una condivisione personale.

Share

Tips Linux e Microsoft