Configurazione di Samba
I suggerimenti sono stati presi da riviste di informatica, da newsletters o da siti web
perciò ogni diritto rimane al legittimo proprietario.

Manuale di samba (Vedi oppure Vedi oppure Vedi oppure Vedi)

Samba come Primary Domain Controller (PDC) - http://www.openskills.info/view/boxdetail.php?IDbox=552&boxtype=description  

Gestione utenti  Vedi

Glossario SAMBA
ACL: "Access Control List", un'estensione del normale controllo di accesso. Con le ACL si possono assegnare o negare diritti di accesso specificatamente per singoli utenti. Linux offre come tanti sistemi operativi un supporto nativo per ACL.
ADS: "Active Directory Service", servizio di directory LDAP di Microsoft. Active Directory si basa su un database nella quale sono memorizzate le informazioni sulla rete, come gli utenti, gruppi e computer. I set di dati vengono definiti in Active Directory come oggetti e le proprietà come attributi.
CIFS: "Common Internet File System", introdotto da Microsoft nel 1996, descrive una versione estesa di SMB. CIFS si basa su NetBIOS over TCP/IP e SMB e offre, oltre alla condivisione di file e stampanti, ulteriori servizi come per esempio WindowsRPC e NT-Domain-Service.
IDL: "Interface Definition Language", linguaggio di programmazione dichiarativo per la descrizione di interfacce di una componente software. L'IDL serve soltanto per la descrizione, ma non per la formulazione di algoritmi.
LDAP: "Lightweight Directory Access Protocol", un protocollo di rete che permette l'interrogazione e la modifica di informazioni di un servizio di directory, ossia di un database gerarchico diffuso nella rete.
NBT: "NetBIOS over TCP/IP", o anche "NetBT". Permette l'utilizzo di traffico NetBIOS nel protocollo TCP/IP. In fondo i nomi di NetBIOS vengono trasformati in indirizzi IP. I tipi di nomi di NetBIOS sono comparabili con gli indirizzi TCP/IP.
NETBIOS: "Network Basic Input Output System", interfaccia di programmazione (API, Application Programming Interface), per la comunicazione tra due programmi attraverso una rete. Implementazioni di NetBIOS esistono per IPC, TCP/IP o NETBEUI molto vicino all'hardware.
OPENLDAP:

Valori dei Sistemi Operativi  
Sistema Operativi Valore
Windows NT/2000 Server, funzionante come PDC 32
Windows NT/2000/XP, non PDC 16
Windows 95/98/Me 1
Windows for Workgroup 1
   
Ruolo del computer nel workgroup
Domain Master Browser 128
WINS Client 32
Preferred master 8
Running master 4
Recent backup Browser 2
Backup Browser 1



Samba 2.x può svolgere le attività di PDC, Primary Domain Controller, in una rete di client Windows (o mista).
Le funzionalità supportate sono:
- Login sul dominio (domain logon) per client Windows NT/2000/XP.
- Sicurezza a livello utente per client Windows 9x/ME (questi client non hanno il concetto di dominio, ma supportano il login su un dominio)
- Roaming profiles, per avere utenti che possono loggarsi su client diversi mantenendo il proprio ambiente.
- Browse list e master browser
- Policy di sistema in stile NT4
- Possibilità di ottenere la lista degli utenti/gruppi presenti sul PDC Samba
Le funzionalità ancore non supportate sono:
- Gestione Active Directory (introdotta dalla versione 3.x) 
- Utilizzo come BDC (Backup Domain Controller). (Esistono dei workaround, ma sono piuttosto laboriosi)
- Possibilità di replicare il database delle password SAM da un server Windows (introdotta dalla versione 3.x) 
Per configurare Samba come PDC di un dominio Windows è necessario:
1- Installare Samba su un server Linux/Unix (tramite sorgenti o RPM)
2- Configurare smb.conf
3- Creare directory per i roaming profile e i domain logons
4- Aggiungere le login e le password per gli utenti e le macchine del dominio
5- Configurare i client Windows per unirsi al dominio.

1- Installazione di Samba
L'installazione per un PDC non richiede particolari accorgimenti rispetto ad una normale installazione di Samba, tramite rpm o tar.gz.
2- Configurazione di smb.conf
Vediamo un esempio del file di configurazione di un Samba PDC. Varie impostazioni sono comuni a qualsiasi installazione Samba, alcune sono specifiche per un PDC (domain master = yes , security = user , encrypt passwords = yes), altre sono necessarie se si vuole supportare l'esecuzione sul client di uno script al login (logon script e condivisione [netlogon] ) o l'uso dei roaming profiles (logon path , condivisione [profiles]).
Valutare attentamente quest'ultima opzione: ha la comodità di separare l'uso di una singola macchina fisica da un singolo utente (tutti gli utenti possono usare tutte le macchine), ma comporta ad ogni login il caricamento o la sincronizzazione di tutti i "Documents and Settings" Windows fra il client e il server, con un potenziale carico sul network non indifferente e maggiori attese da parte dell'utente.
Fatto il login l'utente agirà sui file della macchina locale, che poi vengono a loro volta sincronizzati con quelli sul server al momento del logout.

[global]
; Settaggi generali (validi su ogni configurazione Samba)
workgroup = intranet E' il nome del Dominio e/o del Workgroup
netbios name = serverone E' il nome del server Samba
server string = Samba PDC - Versione %v La descrizione del server
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192 Settings TCP consigliabili di default

; Settaggi per un PDC e un master browser 
os level = 64 Imposta il valore con cui partecipare alle elezioni per il Master Browser
preferred master = yes Forza una elezione quando si avvia e vi partecipa con maggiori possibilità di successo
local master = yes Fa partecipare Samba alle elezioni per il Local Master Browser
domain master = yes La riga che indica a Samba di operare com PDC

; Gestione utenti e sicurezza
security = user Impone di autenticare gli utenti localmente. E' necessario su un PDC Samba
encrypt passwords = yes Cripta login e password in fase di autenticazione: obbligatorio su un PDC e necessario per interagire senza problemi con client Windows NT o successivi
domain logons = yes Permette ai client Windows di loggarsi sul dominio autenticandosi con il server Samba
hosts allow = 127.0.0.1 192.168.0.0/255.255.255.0 Permette l'accesso solo dal localhost e dalla rete 192.168.0.0/24
add machine script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u Aggiunge automaticamente al sistema l'account di una nuova macchina che entra nel dominio

; Gestione logging
log file = /var/log/samba/log.%m Definisce la posizione dei log e indica di creare log diversi on i nomi delle rispettive macchine client
log level = 2 Imposta a 2 il livello di logging, visualizzando tutti i file letti e scritti
max log size = 50 Imposta a 50 Kb la dimensione massima dei file di log

; User profiles, home directory e netlogon (a queste configurazioni in [global] vanno SEMPRE aggiunte le definizioni rispettivamente di [homes] , [profiles] e [netlogon] riportate più sotto
logon home = \\%L\%U\.profile Definisce la posizione del file .profile (per client Win9x/ME) in \\nomeserver\nomeutente
logon path = \\%L\profiles\%U Definisce la posizione della directory profiles (per client WinNT/2k/XP) in \\nomeserver\profiles\nomeutente
logon drive = H: Crea l'unità di rete H: al login su client Windows
logon script = netlogon.bat Specifica quale script eseguire sul client ad ogni login. Lo script viene cercato nella directory definita nella condivisione [netlogon]

[homes] Share speciale, che definisce la posizione delle home directory
comment = Home Directory per ogni User Descrizione della condivisione
browseable = no E' bene non rendere pubblicamente visibile le home dei singoli utenti
writeable = yes Ogni utente deve poter scrivere nella sua home

[profiles] Share speciale dove vengono scritti i file di profilo per i gli utenti roaming. Ad ogni login e logout il suo contenuto viene sincronizzato con la cartella dei documenti sul computer locale (C:/Documenti/NomeUtente.dominio)
path = /home/profiles La directory locale sul server Samba dove sono salvati i profili. Qui vengono, automaticamente, create delle sottodirectroy con i nomi degli utenti
writeable = yes I profili sono sincronizzati con il client al login e al logout e devono essere scrivibili
browseable = no Come per le home, anche i profili non devono essere visibili agli altri utenti
create mask = 0600 La maschera con cui vengono creati i file: Pieni permessi all'owner, nessun permesso per gli altri utenti
directory mask = 0700 La maschera con cui vengono create le directory: per l'owner devono essere anche eseguibili (sfogliabili)

[netlogon] Condivisione speciale che contiene gli script che vengono eseguiti sui client Windows al login sul dominio. Devono essere eseguibili su Windows e possono essere utilizzati per varie operazione di amministrazione centralizzata (backup di dati locali, aggiornamento programmi o antivirus, mappatura di nuove condivisioni di rete ecc.)
path = /home/netlogon La directory sul server in cui sono contenuti, in sottodirectory con nome uguale al login dell'utente, gli script definiti con la direttiva "logon script"
read only = yes Questi script devono essere accessbili solo in lettura... 
write list = @admin ... tranne agli utenti del gruppo (@) admin
browseable = no Questa è una condivisione di servizio che è inutile mostrare agli altri utenti

3- Creazione delle directory supplementari
E' importante creare directory per i profile e i netlogon definiti in smb.conf con nomi e permessi corretti.
Sulla base della configurazione di esempio sopra riportata vanno eseguite le seguenti operazioni sul server Samba (come root):
[root@sambaserver root]# groupadd admin Si crea il gruppo admin, composto da utenti che possono editare gli script di logon. Considerare che questi script sono particolarmente importanti, in termini di sicurezza, visto che vengono eseguiti sui client Window
[root@sambaserver root]# mkdir -m 0775 /home/netlogon Crea la directory /home/netlogon, leggibile ed eseguibile da utti gli utenti e modificabile solo da owner e ownergroup
[root@sambaserver root]# chown root.admin /home/netlogon Si imposta root come owner della directory e admin come gruppo (con permessi di scrittura)
[root@sambaserver root]# mkdir /home/profiles Si crea una directory per i profili (uguale a quella definita in smb.conf)
[root@sambaserver root]# chmod 1757 /home/profiles Si imposta lo sticky bit e si rende questa directory scrivibile da root e le sue sottodirectory gestibili dai rispettivi utenti, senza possibilità di modificare quelle degli altri

4- Aggiungere login e password
Gestire gli utenti di un dominio con Samba non è una procedura immediata e vanno considerati alcuni aspetti fondamentali:
- Samba utilizza come file delle password /etc/samba/smbpasswd (di default) che presenta una riga per ogni utente (sia di un dominio che di un server con normale autenticazione). In questo file è prevista una riga (con login , password criptata e altri dati) per ogni utente.
- Per ogni utente presente sul file smbpasswd DEVE essere presente un rispettivo utente sul normale file degli utenti Unix /etc/passwd. Questo perchè Samba agisce sul sistema locale come un normale processo Unix e, anche se viene eseguito come root, accede al filesystem con i permessi degli utenti secondo quanto configurato.
- Quando Samba agisce come PDC, oltre a creare una login (sia in /etc/samba/smbpasswd che in /etc/passwd) per ogni utente, si deve creare una login speciale per ogni macchina del dominio. Questa login, definita trust account o computer account ha il nome NetBios del computer seguito dal segno dollaro ($). Al primo login da parte del trust account viene generata una sorta di password che viene utilizzata per autenticare le comunicazioni fra il PDC e il client e assicurarsi che non ci siano altre macchine che possano unirsi al dominio con lo stesso nome NetBios.
- La gestione delle login (sia per gli utenti che per i computer, sia su smbpasswd che su passwd) può essere fatta in maniera manuale, con i comandi sotto riportati, o in maniera automatica, tramite l'uso della direttiva add user script
- Windows9x/ME anche se possono eseguire un login su un dominio, NON sono strutturati per essere dei client a pieno titolo di un dominio in quanto non ne rispettano le logiche di sicurezza e trust.
Per aggiungere un computer account al dominio manualmente seguire la seguente procedura:
[root@sambaserver root]# groupadd machines Crea un gruppo per tutte i computer account
[root@sambaserver root]# useradd -g machines -d /dev/null -s /bin/false nomeNetBios$ Aggiunge al sistema una login, membro del gruppo machines, senza home directory, senza shell, con nome uguale al nome NetBios della macchina seguito dal segno $. Notare che questo account serve a Samba per agire sul sistema, ma è bene che non possa essere utilizzato per una normale login.
[root@sambaserver root]# passwd -l nomeNetBios$ Viene messo un lock sulla password, in modo da lasciarla nulla e non renderla modificabile se non da root
[root@sambaserver root]# smbpasswd -a -m nomeNetBios Si crea un nuovo computer account per /etc/samba/smbpasswd e si imposta la relativa password. L'opzione -a permette di crearlo, se non esiste, l'opzione -m indica che si tratta di un machine account, il nome NetBios della macchina da aggiungere NON va seguito da $, in questo caso, in quando questo carattere viene aggiunto automaticamente. Non è necessario ricordare la password inserita in quanto viene gestita direttamente fra PDC e client del dominio
Se si vuole evitare di aggiungere a mano un nuovo account per ogni macchina del dominio, si può provare ad aggiungere, come sopra indicato, la seguente riga a smb.conf:
add machine script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u
Verificare il path e la sintassi del comando useradd e assicurarsi di avere il gruppo machines già creato.
Per aggiungere a mano le login degli utenti (non delle macchine) del dominio: 
[root@sambaserver root]# useradd pippo Aggiunge l'utente al /etc/passwd di sistema
[root@sambaserver root]# passwd pippo Gli imposta la password. Se l'utente non deve accedere al sistema Unix, impostagli una shell nulla in /etc/passwd
[root@sambaserver root]# smbpasswd -a pippo Aggiunge l'utente pippo a /etc/samba/smbpasswd e gli imposta la password 
NOTA: Quando si configura un client Windows NT/2k/XP per farlo diventare parte di un dominio, viene richiesta una password di amministratore. In questa situazione si deve usare la login di root con la relativa password, per cui è necessario aggiungere l'utente root anche al smbpasswd:
[root@sambaserver root]# smbpasswd -a root
Notare che se per caso si cambia la password di root con passwd e non la si aggiorna anche con smbpasswd, la password che fa testo è la seconda, quella presente in /etc/samba/smbpasswd.
Per questo ed altri motivi, una volta creato un utente è buona cosa fare in modo che la sua password sul sistema Unix sia allineata con quella usata da Samba via rete. Per fare in modo che una password cambiata tramite Samba si rispecchi anche sul /etc/passwd locale si devono aggiungere a smb.conf simili righe di configurazione:
unix password sync = yes Imposta la sincronizzazione delle password fra Samba e il sistema Unix locale
passwd program = /usr/bin/passwd %u La riga di comando per cambiare la password Unix. %u è la login dell'utente
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *Enter* new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all* authentication*tokens*updated*successfully* La procedura di matching per gestire le richieste in output di passwd. Assicurarsi che sul proprio sistema siano utilizzate le stesse parole
Purtroppo questa procedura non funziona al contrario: se si cambia con passwd una password Unix, si dovrà cambiarla a mano con smbpasswd per tenere sincronizzata la password Unix con la password Samba.
5- Configurazione dei client
La configurazione di un sistema Windows per unirsi ad un dominio, varia a seconda della versione:
Windows 95/98/ME:
- Verificare che sia installato il "Client per Reti Microsoft" fra le proprietà di rete
- Assicurarsi che il Client per Reti Microsoft sia selezionato come protocollo di rete primario (Pannello di Controllo -> Rete -> Logon di rete primario).
- Andare su Pannello di Controllo -> Rete -> Client per reti Microsoft -> Proprietà -> Logon su Dominio NT.
- Se si è configurata su smb.conf l'opzione "add user script", selezionare il checkbox Crea un Computer Account, altrimenti creare a mano sul server Samba un utente con il nome della macchina Windows.
- Inserire il nome del proprio dominio e cliccare OK.
Windows NT:
- Andare su Pannello di Controllo -> Rete -> Identificazione Rete -> Proprietà
- Selezionare Dominio e inserire il nome del prorio dominio
- Selezionare Crea un Computer Account 
- Alla richiesta della password di un amministratore inserire la login e la password di root, ricordarsi che l'utente root deve essere aggiunto a smbpasswd.
- Dovrebbe comparire un messaggio che ci da il benvenuto sul dominio.
Windows 2000:
Le procedure sono uguali a quelle per Windows NT tranne che i settaggi di rete sono trovati sotto Pannello di Controllo -> Sistema -> Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull'icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà).
Windows XP:
La procedura con Windows XP è più complessa (lamentele a Microsoft che usa cambiare le specifiche e le implementazioni dei suoi protocolli anche per rendere più complicata l'interoperabilità con soluzioni alternative).
Notare che solo XP Professional Edition può essere usato per far parte di un dominio, Windows XP Home Edition non può far parte di un dominio (Samba o Windows based). 
- Aprire l'editor delle policy di Sicurezza Locale (Start->Pannello di controllo->Strumenti di Aministrazione->Criteri di protezione locali->Criteri locali->opzioni di protezione)
- Disabilitare la voce "Domain member: Digitally encrypt or sign secure channel (always)" (Membro di dominio: aggiunta crittografia of irma digitale ai dati del canale protetto (sempre) )
- Disabilitare la voce "Domain member: Disable machine account password changes" (Controller di dominio: rifiuta cambio password account computer)
- Disabilitare la voce "Domain member: Require strong (Windows 2000 or later) session key" (Membro di dominio: richiesta chiave di sessione avanzata (Windows 2000 o versioni successive) )
- Scaricare da Samba.org (http://de.samba.org/samba/ftp/docs/Registry/WinXP_SignOrSeal.reg) la patch per il registro WinXP_SignOrSeal. Per applicarla cliccare due volte sul file .reg e rispondere Si alle domande
- A questo punto ci si può unire al dominio come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica uppure cliccare su Identificazione di Rete ed eseguire il Wizard.
Linux/Unix:
Anche dei sistemi Linux, ovviamente, possono unirsi ad un dominio con un PDC Samba e se sono dei file server, si può configurare Samba per permettere l'autenticazione tramite il dominio.
Su smb.conf ci devono essere le seguenti righe:
[global]
workgroup = <nome dominio>
netbios name = <nome server samba>
security = DOMAIN
encrypt passwords = Yes
password server = <nome/ip del PDC>
preferred master = False
domain master = False
Ovviamente sul PDC Samba deve essere creato un computer account per il nostro Samba locale (con il nome specificato in netbios name) e, anche in questo caso, il computer locale deve preventivamente unirsi al dominio, con una procedura che è paragonabile a quelle viste sopra per client Windows. Sul Linux/Unix locale basta scrivere:
smbpasswd -j <nome dominio> -r <nome PDC server> -U root
Bisogna fornire la password di root del PDC Samba (ricordarsi che è la password salvata in smbpasswd e non in passwd/shadow, nel caso fossero diverse). 



===========================
Autenticazione di utenti MS-Windows con Samba - http://scuola.linux.it/docs/samba/samba8.html 
A partire dalla versione 2.0 è possibile configurare Samba come domain controller e autenticare gli utenti degli elaboratori clienti MS-Windows 95/98 sostituendo un servente MS-Windows NT/2000.
Con la versione 2.1 è stata data la possibilità di accreditare anche clienti MS-Windows NT.
Dalla versione 2.2, che è la più recente, Samba può accreditare anche clienti MS-Windows 2000/XP, partecipare a una ADS (Active directory service) ed è stato aggiunto il demone winbind che consente di usare un domain controller MS-Windows come servente per le utenze, allineando del tutto le utenze di GNU/Linux con quelle di MS-Windows e centralizzando la loro gestione su un solo sistema.
È sicuramente anche il caso di elencare ciò che Samba non può fare (almeno per il momento):
utilizzo di BDC (Backup domain controller) in domini NT e Active directory replication con MS-Windows 2000;
partecipazione ad alcun tipo di trust relationship;
sostituzione di un MS-Windows 2000-Server.
In questa sede viene presa in esame solo la configurazione di Samba come PDC per l'accreditamento di clienti MS-Windows 95/98/Me/NT.
Di seguito viene presentato un possibile file smb.conf con le definizioni necessarie affinché Samba sia un PDC:
[global]
netbios name = ServerSamba
workgroup = INF
server string = Samba Server NT
log file = /var/log/samba/%m.log
max log file = 50
security = user
encrypt password = yes
smb password file = /etc/samba/smbpasswd
local master = yes
preferred master = yes
os level = 33
domain master = yes
;
domain logons = yes
;
# script di accesso fisso per tutti
logon script = logon.bat
# oppure uno per ogni cliente
; logon script = %m.bat
# oppure uno per ogni utente
; logon script = %U.bat 

# profili utenti 
logon path = \\ServerSamba\profile\%U

[netlogon]
comment = Directory degli script di inizializzazione
path = /home/netlogon
read only = yes
guest ok = yes
browseable = no

[home]
comment = Dir utente
path = /home/%U
browseable = yes
writable = yes

[public]
comment = Dir pubblica
path = /home/public
browseable = yes
writable = yes
public = yes
create mask = 0777

6.1 Domain logons 
È la direttiva che permette di configurare Samba come PDC in quanto lo imposta come servente di autenticazione di dominio.
6.2 Logon script 
Samba consente l'esecuzione degli script di accesso di MS-Windows (.BAT o .CMD). Tali script vengono eseguiti sul cliente al momento della connessione di un utente al dominio ma sono memorizzati sul servente e vengono quindi trasferiti attraverso la rete. Ovviamente sono molto utili per impostare dinamicamente le configurazioni di rete per gli utenti quando si connettono.
L'opzione logon script permette appunto di indicare il nome dello script da eseguire quando l'utente si collega; come si vede dall'esempio può essere uno script unico, valido per tutti, oppure dipendente dal cliente o dal nome utente.
Sul servente GNU/Linux questi script vengono memorizzati nella directory indicata nella condivisione netlogon, che viene descritta più avanti.
Una cosa importante da ricordare è che gli script di accesso vengono eseguiti in ambiente MS-Windows e devono essere quindi scritti con righe terminanti con i caratteri di <CR> e <LF>, invece del solo <LF> di un sistema GNU/Linux.
L'esempio seguente di script di accesso, definisce un disco di rete W: su una condivisione di Samba:
echo Connette disco di rete
net use w: \\ServerSamba\dati
6.3 Logon path 
In MS-Windows 95/98 ciascun utente può avere il proprio profilo comprendente informazioni sull'aspetto della scrivania grafica, sulle applicazioni che appaiono nel menù {Start}, sullo sfondo e altre ancora. Tale profilo può essere memorizzato direttamente su un elaboratore cliente e si chiama allora «profilo locale», oppure sul servente e si chiama «profilo di roaming», in quanto l'utente ha a disposizione sempre lo stesso ambiente anche spostandosi da un cliente all'altro.
La direttiva logon path viene usata per indicare dove vengono memorizzati i profili dei vari utenti.
6.4 Logon home e logon drive 
Con logon home si indica la posizione della directory personale di un utente, che può essere diversa da quella indicata nella sezione homes.
Con logon drive, da usare solo in caso di clienti MS-Windows NT, si indica la lettera del disco su un client in cui vengono abbinate le directory personali indicate con logon home.
6.5 Sezione [netlogon] 
In questa sezione viene configurata una condivisione speciale che serve a contenere gli script di accesso. La configurazione scelta nell'esempio (sola lettura, pubblica, non visibile alla scansione delle risorse) è dettata dal ruolo particolare che svolge.
6.6 Definizione delle utenze per macchina 
Nel caso nella rete siano presenti dei clienti MS-Windows NT/2000/XP Workstation/Professional, per essi devono essere creati sul PDC i cosiddetti machine account in aggiunta alle utenze normali. Ovviamente, tali utenze speciali devono essere inserite sia come utenti Samba che come utenti del sistema GNU/Linux che ospita il servente. Tale operazione può essere fatta in modo automatico (direttiva add user illustrata nel paragrafo sul livello di sicurezza domain nel capitolo riguardante il servente Samba 2.3.1.4) oppure manualmente, con i seguenti comandi:
# /usr/sbin/useradd -d /dev/null -g 100 -c"descrizione_dell'elaboratore_client" <-'
`->-s /bin/false nome_elaboratore$
# passwd -l nome_elaboratore$
# smbpasswd -a -m nome_elaboratore
È necessario prestare attenzione al carattere $ alla fine del nome della macchina nel primo e nel secondo comando.
Il secondo comando permette di bloccare la parola d'ordine di quell'utente fittizio.
Con il terzo comando si definisce l'utente nome_elaboratore per Samba grazie all'opzione -m.
6.7 Nota importante per clienti MS-Windows XP Professional 
Nel caso si tenti di accedere da dei clienti MS-Windows XP, il processo di autenticazione non si conclude positivamente a causa di una impostazione di sicurezza che deve essere variata nella macchina cliente.
A questo scopo occorre attivare la macchina MS-Windows XP come utente Administrator in locale ed effettuare i seguenti passaggi:
«Pannello di controllo»
«Prestazioni e manutenzione»
«Strumenti di amministrazione»
«Criteri di protezione locali»
«Criteri locali»
«Opzioni di protezione»
Nella lista che si ottiene si deve individuare la voce:
«Membro di dominio: aggiunta crittografia o firma digitale ai dati del canale protetto (sempre)»
e si deve impostarla a disabilitata.
Al successivo avvio della macchina sarà possibile farsi autenticare dal PDC Samba.


Samba come PDC in una rete Windows
(LEGGI ANCHE QUESTO)
Samba può rimpiazzare NT come Primary Domain Controller in una rete di workstation Windows
--------------------------------------------------------------------------------
Samba è un software/protocollo molto potente. Racchiude numerosissime feature che ne fanno probabilmente il prodotto per Linux più conosciuto: grazie ad esso si è infatti abbattuta del tutto la barriera tra reti Linux/Unix e Windows. In questo articolo si spiega come configurare un server Samba su piattaforma Linux come sistema di autenticazione PDC per una lan di macchine Windows.
--------------------------------------------------------------------------------
Configurare SAMBA come PDC è stata un'esigenza visto che avevo bisogno di un metodo unico per autenticare le mie workstation Windows 98 ed NT. Il server della rete è Linux ,e quindi, non potevo togliere a lui il compito di autenticare i logon delle workstation e lasciarlo ad un 'semplice' server NT ;)
Ecco i pacchetti contenuti nel Server Linux RedHat 6.2:
samba-common-2.0.10-0.62
samba-client-2.0.10-0.62
samba-2.0.10-0.62
Per la configurazione ed il controllo dei demoni di Samba vi rimando alla seguente risorsa:
http://www.pluto.linux.it/ildp/HOWTO/SMB-HOWTO.html
Qui voglio solo mostrarvi cosa fare per configurare Samba come PDC. Ecco il mio file di configurazione:
# Samba config file created using SWAT
# from konus.konus.org (192.168.0.1)
# Date: 2001/06/26 23:30:45
# Global parameters
[global]
workgroup = KONUSGR
netbios name = FILESERVER
server string = Fileserver %v
encrypt passwords = Yes
update encrypted = Yes
log file = /var/log/samba/log.%m
time server = Yes
read prediction = Yes
socket options =
domain admin group = @adm
logon script = default.bat
logon drive = H:
domain logons = Yes
os level = 65
preferred master = Yes
domain master = Yes
remote announce = 192.168/KONUSGR
remote browse sync = 192.168
socket address = 192.168.0.4
hosts allow = 192.168.
[homes]
comment = Home Directories
writeable = Yes
create mask = 0750
browseable = No
[printers]
comment = All Printers
path = /tmp
create mask = 0700
printable = Yes
browseable = No
[c]
comment = Linux principale
path = /
writeable = Yes
guest ok = Yes
dont descend = /proc ./proc /etc
[mp3]
comment = MP3 Files
path = /usr/share/mp3
admin users = root, duck
write list = duck, root
force user = root
writeable = Yes
[netlogon]
path = /usr/local/samba/netlogon
[profiles]
path = /usr/local/samba/ntprofile
writeable = Yes
create mask = 0700
directory mask = 0700
In questo file di configurazione vi sono molti parametri che già di default vengono inseriti da Samba e vi rimando quindi al documento che vi ho citato prima. Vi spiego, invece, l'utilizzo di alcuni di essi utili a raggiungere il nostro scopo:
domain admin group = @adm
Questo parametro indica un gruppo configurato sul server. Tutti gli utenti che faranno parte di questo gruppo verranno considerati Amministratori del Dominio appena faranno un Logon su workstations NT nel nostro domino.
Il gruppo degli amministratori non è necessario che si chiami adm, l'importante è che sia presente una voce nel file /etc/group del server Linux.
encrypt passwords = Yes
update encrypted = Yes
Questi due parametri sono necessari per far si che vi sia una corrispondenza di criptazione fra le password del server Linux in smbpasswd e quelle dei server NT.
logon script = default.bat
Questo parametro permetterà a Samba di cercare lo script di default da eseguire su una macchina Windows NT, 98 o 95 che sia, appena verrà effettuato il Logon.
Lo script che ho inserito io è ad, esempio:
rem Default logon script, create links to this file.
net time \fileserver /set /yes
@echo off
if %OS%.==Windows_NT. goto WinNT
:Win95
net use x: \fileserver\mp3
net use y: \fileserver\c
goto end
:WinNT
net use x: \fileserver\mp3 /persistent:no
net use y: \fileserver\c /persistent:no
:end
Lo script default.bat lo dobbiamo mettere nella directory definita alla sezione:
[netlogon]
path = /usr/local/samba/netlogon
Configuriamo ora gli utenti e le workstation che potranno loggarsi al nostro dominio:
Macchine NT:
Ogni macchina NT del dominio dovrà avere la sua riga sia in /etc/passwd che in /etc/smbpasswd. Nel file /etc/passwd vi sarà l'ID del login mentre in smbpasswd vi sarà la stessa password criptata in formato NT.
adduser –g microsoft –c MSworkst –d /dev/null –s /bin/false –n pippo
Questa riga crea un utente di nome pippo (il nome della mia workstation NT), nel gruppo microsoft con commento MSworkst con directory home /dev/null e con shell /bin/false. In questo modo l'utente pippo non potrà effettuare un telnet sulla macchina Linux. smbpasswd -a -m pippo
Questo comando, invece, crea la password di pippo nel file /etc/smbpasswd
Utenti del dominio:
Ogni utente del dominio dovrà avere un account sul PDC sia come utente del server linux che nel fle smbpasswd. La home directory può benissimo essere /dev/null così come per la shell:
adduser -g users -c 'Raffaello Di Martino' -s /bin/false -n raffo
smbpasswd -a raffo
Ora possiamo provare a loggarci con la nostra workstation Microsoft...semplice no ?

Samba come Primary Domain Controller (PDC) / 3- INTERMEDIATE
Samba 2.x può svolgere le attività di PDC, Primary Domain Controller, in una rete di client Windows (o mista).
Le funzionalità supportate sono:
- Login sul dominio (domain logon) per client Windows NT/2000/XP.
- Sicurezza a livello utente per client Windows 9x/ME (questi client non hanno il concetto di dominio, ma supportano il login su un dominio)
- Roaming profiles, per avere utenti che possono loggarsi su client diversi mantenendo il proprio ambiente.
- Browse list e master browser
- Policy di sistema in stile NT4
- Possibilità di ottenere la lista degli utenti/gruppi presenti sul PDC Samba
Le funzionalità ancore non supportate sono:
- Gestione Active Directory (introdotta dalla versione 3.x)
- Utilizzo come BDC (Backup Domain Controller). (Esistono dei workaround, ma sono piuttosto laboriosi)
- Possibilità di replicare il database delle password SAM da un server Windows (introdotta dalla versione 3.x) Per configurare Samba come PDC di un dominio Windows è necessario:
1- Installare Samba su un server Linux/Unix (tramite sorgenti o RPM)
2- Configurare smb.conf
3- Creare directory per i roaming profile e i domain logons
4- Aggiungere le login e le password per gli utenti e le macchine del dominio
5- Configurare i client Windows per unirsi al dominio.
1- Installazione di Samba
L'installazione per un PDC non richiede particolari accorgimenti rispetto ad una normale installazione di Samba, tramite rpm o tar.gz.
2- Configurazione di smb.conf
Vediamo un esempio del file di configurazione di un Samba PDC. Varie impostazioni sono comuni a qualsiasi installazione Samba, alcune sono specifiche per un PDC (domain master = yes , security = user , encrypt passwords = yes), altre sono necessarie se si vuole supportare l'esecuzione sul client di uno script al login (logon script e condivisione [netlogon] ) o l'uso dei roaming profiles (logon path , condivisione [profiles]).
Valutare attentamente quest'ultima opzione: ha la comodità di separare l'uso di una singola macchina fisica da un singolo utente (tutti gli utenti possono usare tutte le macchine), ma comporta ad ogni login il caricamento o la sincronizzazione di tutti i "Documents and Settings" Windows fra il client e il server, con un potenziale carico sul network non indifferente e maggiori attese da parte dell'utente.
Fatto il login l'utente agirà sui file della macchina locale, che poi vengono a loro volta sincornizzati con quelli sul server al momento del logout.
[global]
; Settaggi generali (validi su ogni configurazione Samba)
workgroup = intranet E' il nome del Dominio e/o del Workgroup
netbios name = serverone E' il nome del server Samba
server string = Samba PDC - Versione %v La descrizione del server
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192 Settings TCP consigliabili di default
; Settaggi per un PDC e un master browser
os level = 64 Imposta il valore con cui partecipare alle elezioni per il Master Browser
preferred master = yes Forza una elezione quando si avvia e vi partecipa con maggiori possibilità di successo
local master = yes Fa partecipare Samba alle elezioni per il Local Master Browser
domain master = yes La riga che indica a Samba di operare com PDC
; Gestione utenti e sicurezza
security = user Impone di autenticare gli utenti localmente. E' necessario su un PDC Samba
encrypt passwords = yes Cripta login e password in fase di autenticazione: obbligatorio su un PDC e necessario per interagire senza problemi con client Windows NT o successivi
domain logons = yes Permette ai client Windows di loggarsi sul dominio autenticandosi con il server Samba
hosts allow = 127.0.0.1 192.168.0.0/255.255.255.0 Permette l'accesso solo dal localhost e dalla rete 192.168.0.0/24
add machine script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u Aggiunge automaticamente al sistema l'account di una nuova macchina che entra nel dominio
; Gestione logging
log file = /var/log/samba/log.%m Definisce la posizione dei log e indica di creare log diversi on i nomi delle rispettive macchine client
log level = 2 Imposta a 2 il livello di logging, visualizzando tutti i file letti e scritti
max log size = 50 Imposta a 50 Kb la dimensione massima dei file di log
; User profiles, home directory e netlogon (a queste configurazioni in [global] vanno SEMPRE aggiunte le definizioni rispettivamente di [homes] , [profiles] e [netlogon] riportate più sotto
logon home = \\%L\%U\.profile Definisce la posizione del file .profile (per client Win9x/ME) in \\nomeserver\nomeutente
logon path = \\%L\profiles\%U Definisce la posizione della directory profiles (per client WinNT/2k/XP) in \\nomeserver\profiles\nomeutente
logon drive = H: Crea l'unità di rete H: al login su client Windows
logon script = netlogon.bat Specifica quale script eseguire sul client ad ogni login. Lo script viene cercato nella directory definita nella condivisione [netlogon]
[homes] Share speciale, che definisce la posizione delle home directory
comment = Home Directory per ogni User Descrizione della condivisione
browseable = no E' bene non rendere pubblicamente visibile le home dei singoli utenti
writeable = yes Ogni utente deve poter scrivere nella sua home
[profiles] Share speciale dove vengono scritti i file di profilo per i gli utenti roaming. Ad ogni login e logout il suo contenuto viene sincronizzato con la cartella dei documenti sul computer locale (C:/Documenti/NomeUtente.dominio)
path = /home/profiles La directory locale sul server Samba dove sono salvati i profili. Qui vengono, automaticamente, create delle sottodirectroy con i nomi degli utenti
writeable = yes I profili sono sincronizzati con il client al login e al logout e devono essere scrivibili
browseable = no Come per le home, anche i profili non devono essere visibili agli altri utenti
create mask = 0600 La maschera con cui vengono creati i file: Pieni permessi all'owner, nessun permesso per gli altri utenti
directory mask = 0700 La maschera con cui vengono create le directory: per l'owner devono essere anche eseguibili (sfogliabili)
[netlogon] Condivisione speciale che contiene gli script che vengono eseguiti sui client Windows al login sul dominio. Devono essere eseguibili su Windows e possono essere utilizzati per varie operazione di amministrazione centralizzata (backup di dati locali, aggiornamento programmi o antivirus, mappatura di nuove condivisioni di rete ecc.)
path = /home/netlogon La directory sul server in cui sono contenuti, in sottodirectory con nome uguale al login dell'utente, gli script definiti con la direttiva "logon script"
read only = yes Questi script devono essere accessbili solo in lettura...
write list = @admin ... tranne agli utenti del gruppo (@) admin
browseable = no Questa è una condivisione di servizio che è inutile mostrare agli altri utenti
3- Creazione delle directory supplementari
E' importante creare directory per i profile e i netlogon definiti in smb.conf con nomi e permessi corretti.
Sulla base della configurazione di esempio sopra riportata vanno eseguite le seguenti operazioni sul server Samba (come root):
[root@sambaserver root]# groupadd admin Si crea il gruppo admin, composto da utenti che possono editare gli script di logon. Considerare che questi script sono particolarmente importanti, in termini di sicurezza, visto che vengono eseguiti sui client Window
[root@sambaserver root]# mkdir -m 0775 /home/netlogon Crea la directory /home/netlogon, leggibile ed eseguibile da utti gli utenti e modificabile solo da owner e ownergroup
[root@sambaserver root]# chown root.admin /home/netlogon Si imposta root come owner della directory e admin come gruppo (con permessi di scrittura)
[root@sambaserver root]# mkdir /home/profiles Si crea una directory per i profili (uguale a quella definita in smb.conf)
[root@sambaserver root]# chmod 1757 /home/profiles Si imposta lo sticky bit e si rende questa directory scrivibile da root e le sue sottodirectory gestibili dai rispettivi utenti, senza possibilità di modificare quelle degli altri
4- Aggiungere login e password
Gestire gli utenti di un dominio con Samba non è una procedura immediata e vanno considerati alcuni aspetti fondamentali:
- Samba utilizza come file delle password /etc/samba/smbpasswd (di default) che presenta una riga per ogni utente (sia di un dominio che di un server con normale autenticazione). In questo file è prevista una riga (con login , password criptata e altri dati) per ogni utente.
- Per ogni utente presente sul file smbpasswd DEVE essere presente un rispettivo utente sul normale file degli utenti Unix /etc/passwd. Questo perchè Samba agisce sul sistema locale come un normale processo Unix e, anche se viene eseguito come root, accede al filesystem con i permessi degli utenti secondo quanto configurato.
- Quando Samba agisce come PDC, oltre a creare una login (sia in /etc/samba/smbpasswd che in /etc/passwd) per ogni utente, si deve creare una login speciale per ogni macchina del dominio. Questa login, definita trust account o computer account ha il nome NetBios del computer seguito dal segno dollaro ($). Al primo login da parte del trust account viene generata una sorta di password che viene utilizzata per autenticare le comunicazioni fra il PDC e il client e assicurarsi che non ci siano altre macchine che possano unirsi al dominio con lo stesso nome NetBios.
- La gestione delle login (sia per gli utenti che per i computer, sia su smbpasswd che su passwd) può essere fatta in maniera manuale, con i comandi sotto riportati, o in maniera automatica, tramite l'uso della direttiva add user script
- Windows9x/ME anche se possono eseguire un login su un dominio, NON sono strutturati per essere dei client a pieno titolo di un dominio in quanto non ne rispettano le logiche di sicurezza e trust.
Per aggiungere un computer account al dominio manualmente seguire la seguente procedura:
[root@sambaserver root]# groupadd machines Crea un gruppo per tutte i computer account
[root@sambaserver root]# useradd -g machines -d /dev/null -s /bin/false nomeNetBios$ Aggiunge al sistema una login, membro del gruppo machines, senza home directory, senza shell, con nome uguale al nome NetBios della macchina seguito dal segno $. Notare che questo account serve a Samba per agire sul sistema, ma è bene che non possa essere utilizzato per una normale login.
[root@sambaserver root]# passwd -l nomeNetBios$ Viene messo un lock sulla password, in modo da lasciarla nulla e non renderla modificabile se non da root
[root@sambaserver root]# smbpasswd -a -m nomeNetBios Si crea un nuovo computer account per /etc/samba/smbpasswd e si imposta la relativa password. L'opzione -a permette di crearlo, se non esiste, l'opzione -m indica che si tratta di un machine account, il nome NetBios della macchina da aggiungere NON va seguito da $, in questo caso, in quando questo carattere viene aggiunto automaticamente. Non è necessario ricordare la password inserita in quanto viene gestita direttamente fra PDC e client del dominio
Se si vuole evitare di aggiungere a mano un nuovo account per ogni macchina del dominio, si può provare ad aggiungere la seguente riga a smb.conf:
add user script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u
Verificare il path e la sintassi del comando useradd e assicurarsi di avere il gruppo machines già creato.
Per aggiungere a mano le login degli utenti (non delle macchine) del dominio:
[root@sambaserver root]# useradd pippo Aggiunge l'utente al /etc/passwd di sistema
[root@sambaserver root]# passwd pippo Gli imposta la password. Se l'utente non deve accedere al sistema Unix, impostagli una shell nulla in /etc/passwd
[root@sambaserver root]# smbpasswd -a pippo Aggiunge l'utente pippo a /etc/samba/smbpasswd e gli imposta la password
NOTA: Quando si configura un client Windows NT/2k/XP per farlo diventare parte di un dominio, viene richiesta una password di amministratore. In questa situazione si deve usare la login di root con la relativa password, per cui è necessario aggiungere l'utente root anche al smbpasswd:
[root@sambaserver root]# smbpasswd -a root
Notare che se per caso si cambia la password di root con passwd e non la si aggiorna anche con smbpasswd, la password che fa testo è la seconda, quella presente in /etc/samba/smbpasswd.
Per questo ed altri motivi, una volta creato un utente è buona cosa fare in modo che la sua password sul sistema Unix sia allineata con quella usata da Samba via rete. Per fare in modo che una password cambiata tramite Samba si rispecchi anche sul /etc/passwd locale si devono aggiungere a smb.conf simili righe di configurazione:
unix password sync = yes Imposta la sincronizzazione delle password fra Samba e il sistema Unix locale
passwd program = /usr/bin/passwd %u La riga di comando per cambiare la password Unix. %u è la login dell'utente
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *Enter* new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all* authentication*tokens*updated*successfully* La procedura di matching per gestire le richieste in output di passwd. Assicurarsi che sul proprio sistema siano utilizzate le stesse parole
Purtroppo questa procedura non funziona al contrario: se si cambia con passwd una password Unix, si dovrà cambiarla a mano con smbpasswd per tenere sincronizzata la password Unix con la password Samba.
5- Configurazione dei client
La configurazione di un sistema Windows per unirsi ad un dominio, varia a seconda della versione:
Windows 95/98/ME:
- Verificare che sia installato il "Client per Reti Microsoft" fra le proprietà di rete
- Assicurarsi che il Client per Reti Microsoft sia selezionato come protocollo di rete primario (Pannello di Controllo -> Rete -> Logon di rete primario).
- Andare su Pannello di Controllo -> Rete -> Client per reti Microsoft -> Proprietà -> Logon su Dominio NT.
- Se si è configurata su smb.conf l'opzione "add user script", selezionare il checkbox Crea un Computer Account, altrimenti creare a mano sul server Samba un utente con il nome della macchina Windows.
- Inserire il nome del proprio dominio e cliccare OK.
Windows NT:
- Andare su Pannello di Controllo -> Rete -> Identificazione Rete -> Proprietà
- Selezionare Dominio e inserire il nome del prorio dominio
- Selezionare Crea un Computer Account
- Alla richiesta della password di un amministratore inserire la login e la password di root, ricordarsi che l'utente root deve essere aggiunto a smbpasswd.
- Dovrebbe comparire un messaggio che ci da il benvenuto sul dominio.
Windows 2000:
Le procedure sono uguali a quelle per Windows NT tranne che i settaggi di rete sono trovati sotto Pannello di Controllo -> Sistema -> Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull'icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà).
Windows XP:
La procedura con Windows XP è più complessa (lamentele a Microsoft che usa cambiare le specifiche e le implementazioni dei suoi protocolli anche per rendere più complicata l'interoperabilità con soluzioni alternative).
Notare che solo XP Professional Edition può essere usato per far parte di un dominio, Windows XP Home Edition non può far parte di un dominio (Samba o Windows based).
- Aprire l'editor delle policy di Sicurezza Locale (Start->Pannello di controllo->Strumenti di Aministrazione->Criteri di protezione locali->Criteri locali->opzioni di protezione)
- Disabilitare la voce "Domain member: Digitally encrypt or sign secure channel (always)" (Membro di dominio: aggiunta crittografia of irma digitale ai dati del canale protetto (sempre) )
- Disabilitare la voce "Domain member: Disable machine account password changes" (Controller di dominio: rifiuta cambio password account computer)
- Disabilitare la voce "Domain member: Require strong (Windows 2000 or later) session key" (Membro di dominio: richiesta chiave di sessione avanzata (Windows 2000 o versioni successive) )
- Scaricare da Samba.org (http://de.samba.org/samba/ftp/docs/Registry/WinXP_SignOrSeal.reg) la patch per il registro WinXP_SignOrSeal. Per applicarla cliccare due volte sul file .reg e rispondere Si alle domande
- A questo punto ci si può unire al dominio come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica uppure cliccare su Identificazione di Rete ed eseguire il Wizard.
Linux/Unix:
Anche dei sistemi Linux, ovviamente, possono unirsi ad un dominio con un PDC Samba e se sono dei file server, si può configurare Samba per permettere l'autenticazione tramite il dominio.
Su smb.conf ci devono essere le seguenti righe:
[global]
workgroup = <nome dominio>
netbios name = <nome server samba>
security = DOMAIN
encrypt passwords = Yes
password server = <nome/ip del PDC>
preferred master = False
domain master = False
Ovviamente sul PDC Samba deve essere creato un computer account per il nostro Samba locale (con il nome specificato in netbios name) e, anche in questo caso, il computer locale deve preventivamente unirsi al dominio, con una procedura che è paragonabile a quelle viste sopra per client Windows. Sul Linux/Unix locale basta scrivere:
smbpasswd -j <nome dominio> -r <nome PDC server> -U root
Bisogna fornire la password di root del PDC Samba (ricordarsi che è la password salvata in smbpasswd e non in passwd/shadow, nel caso fossero diverse).

File di configurazione di Samba

Modificato Originale (standard)
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentry and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command "testparm"
# to check that you have not made any basic syntactic errors.
#
#======================= Global Settings===================================
[global]
add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u
#(100 è l’identità del gruppo
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = MYGROUP
#(da cambiare col nome del dominio che si vuole dare)
# server string is the equivalent of the NT Description field
server string = Samba Server
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
; hosts allow = 192.168.1. 192.168.2. 127.
# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
printcap name = /etc/printcap
; load printers = yes
load printers = no
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx, cups
printing = cups
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
; guest account = pcguest
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/%m.log
#(oppure: log file = /var/log/samba/log.%m)
# Put a capping on the size of the log files (in Kb).
max log size = 0 (per avere un file unico)
#(oppure: max log size = 50 (per avere files da 50kb)
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = user
# Use password server option only with security = server
# The argument list may include:
# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
# or to auto-locate the domain controller/s
# password server = *
; password server = <NT-Server-Name>
# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
; password level = 8
; username level = 8
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
# The following is needed to keep smbclient from spouting spurious errors
# when Samba is built with support for SSL.
; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
# The following are needed to allow password changing from Windows to
# update the Linux system password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
# the encrypted SMB passwords. They allow the Unix password
# to be kept in sync with the SMB password.
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
# You can use PAM's password change control flag for Samba. If
# enabled, then PAM will be used for password changes when requested
# by an SMB client instead of the program listed in passwd program.
# It should be possible to enable this without changing your passwd
# chat parameter for most setups.
pam password change = yes
# Unix users can map to different SMB User names
; username map = /etc/samba/smbusers
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /etc/samba/smb.conf.%m
# This parameter will control whether or not Samba should obey PAM's
# account and session management directives. The default behavior is
# to use PAM for clear text authentication only and to ignore any
# account or session management. Note that Samba always ignores PAM
# for authentication in the case of encrypt passwords = yes
obey pam restrictions = yes
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
; interfaces = 192.168.12.2/24 192.168.13.2/24
# Configure remote browse list synchronisation here
# request announcement to, or browse list sync from:
# a specific host or from / to a whole subnet (see below)
; remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
; remote announce = 192.168.1.255 192.168.2.44
# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
; local master = no
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
; os level = 33
os level = 64
#(o addirittura 128)
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
; domain master = yes
domain master = yes
# (PDC)
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
; preferred master = yes
preferred master = yes
#PDC
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
; domain logons = yes
domain logons = yes
# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
; logon script = %m.bat
# run a specific logon batch file per username
; logon script = %U.bat
# Where to store roving profiles (only for Win95 and WinNT)
# %L substitutes for this servers netbios name, %U is username
# You must uncomment the [Profiles] share below
; logon path = \\%L\Profiles\%U
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
; wins support = yes
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one WINS Server on the network. The default is NO.
; wins proxy = yes
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no
# Case Preservation can be handy - system default is _no_
# NOTE: These can be set on a per share basis
; preserve case = no
; short preserve case = no
# Default case is normally upper case for all DOS files
; default case = lower
# Be very careful with case sensitivity - it can break things!
; case sensitive = no
#============================ Share Definitions=============================
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
# If you want users samba doesn't recognize to be mapped to a guest user
; map to guest = bad user
# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no
comment = Network Logon Service
public = yes
share modes = no
path = /netlogon
root preexec=/usr/local/bin/segna "%T" "%m" "%u"
#(leggi lo script in fondo alla pigina)
# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
# This one is useful for people to share files
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff
# Other examples.
#
# A private printer, usable only by fred. Spool data will be placed in fred's
# home directory. Note that fred must have write access to the spool directory,
# wherever it is.
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /home/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes
# A private directory, usable only by fred. Note that fred requires write
# access to the directory.
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no
# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %U option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
; comment = PC Directories
; path = /usr/local/pc/%m
; public = no
; writable = yes
# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user's files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no
# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765
[condivisa]
# creare per comodità da WEBMIN
comment = condivisa <dominio>admins
writeable = yes
valid users = @<dominio>admins
path = /condivisa
#cartella di condivisione
write list = @<dominio>admins
[profiles]
#creare per comodità da WEBMIN – dove vanno i profili utente
writable = yes
path = /profiles
========
Contatori presenze (by Andrea PESCHETTI)
Copiare script “segna” allega (root preexec=/usr/local/bin/segna "%T" "%m" "%u") in /usr/local/bin eseguire da terminale (non servirebbe): “dos2unix /usr/local/bin/segna”
dare permesso di lettura, esecuzione a tutti sul file “segna”.
Aggiungere, con un editor, a /etc/samba/smb.conf, alla sezione [netlogon]:
root preexec=/usr/local/bin/segna "%T" "%m" "%u"
Lo script:
#!/bin/sh
#AP2004: contatore di presenze, versione minima
#File che deve servire da registro presenze
REGISTRO = /var/log/registro.log
ORARIO = $1
POSTAZIONE = $2
NOME = $3
#echo –e abilita i caratteri speciali come \t
echo – e “$ORARIO\\t$POSTAZIONE\\t$NOME” >> $REGISTRO

 

# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentry and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command "testparm"
# to check that you have not made any basic syntactic errors.
#
#======================= Global Settings =====================================
[global]

# workgroup = NT-Domain-Name or Workgroup-Name
   workgroup = MYGROUP

# server string is the equivalent of the NT Description field
   server string = Samba Server

# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
;   hosts allow = 192.168.1. 192.168.2. 127.

# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
   printcap name = /etc/printcap
   load printers = yes

# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx, cups
   printing = cups

# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
;  guest account = pcguest

# this tells Samba to use a separate log file for each machine
# that connects
   log file = /var/log/samba/%m.log

# Put a capping on the size of the log files (in Kb).
   max log size = 0

# Security mode. Most people will want user level security. See
# security_level.txt for details.
   security = user

# Use password server option only with security = server
# The argument list may include:
#   password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
# or to auto-locate the domain controller/s
#   password server = *
;   password server = <NT-Server-Name>

# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
;  password level = 8
;  username level = 8

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
   encrypt passwords = yes
   smb passwd file = /etc/samba/smbpasswd

# The following is needed to keep smbclient from spouting spurious errors
# when Samba is built with support for SSL.
;   ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt

# The following are needed to allow password changing from Windows to
# update the Linux system password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
#        the encrypted SMB passwords. They allow the Unix password
#        to be kept in sync with the SMB password.
   unix password sync = Yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*

# You can use PAM's password change control flag for Samba. If
# enabled, then PAM will be used for password changes when requested
# by an SMB client instead of the program listed in passwd program.
# It should be possible to enable this without changing your passwd
# chat parameter for most setups.

   pam password change = yes

# Unix users can map to different SMB User names
;  username map = /etc/samba/smbusers

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
;   include = /etc/samba/smb.conf.%m

# This parameter will control whether or not Samba should obey PAM's
# account and session management directives. The default behavior is
# to use PAM for clear text authentication only and to ignore any
# account or session management. Note that Samba always ignores PAM
# for authentication in the case of encrypt passwords = yes

  obey pam restrictions = yes

# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
;   interfaces = 192.168.12.2/24 192.168.13.2/24

# Configure remote browse list synchronisation here
#  request announcement to, or browse list sync from:
#     a specific host or from / to a whole subnet (see below)
;   remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
;   remote announce = 192.168.1.255 192.168.2.44

# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
;   local master = no

# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
;   os level = 33

# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
;   domain master = yes

# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
;   preferred master = yes

# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
;   domain logons = yes

# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
;   logon script = %m.bat
# run a specific logon batch file per username
;   logon script = %U.bat

# Where to store roving profiles (only for Win95 and WinNT)
#        %L substitutes for this servers netbios name, %U is username
#        You must uncomment the [Profiles] share below
;   logon path = \\%L\Profiles\%U

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
;   wins support = yes

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
#     Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
;   wins server = w.x.y.z

# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one    WINS Server on the network. The default is NO.
;   wins proxy = yes

# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
   dns proxy = no

# Case Preservation can be handy - system default is _no_
# NOTE: These can be set on a per share basis
;  preserve case = no
;  short preserve case = no
# Default case is normally upper case for all DOS files
;  default case = lower
# Be very careful with case sensitivity - it can break things!
;  case sensitive = no

#============================ Share Definitions ==============================
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   valid users = %S
   create mode = 0664
   directory mode = 0775
# If you want users samba doesn't recognize to be mapped to a guest user
; map to guest = bad user


# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
;   comment = Network Logon Service
;   path = /usr/local/samba/lib/netlogon
;   guest ok = yes
;   writable = no
;   share modes = no


# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
;    path = /usr/local/samba/profiles
;    browseable = no
;    guest ok = yes


# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
# Set public = yes to allow user 'guest account' to print
   guest ok = no
   writable = no
   printable = yes

# This one is useful for people to share files
;[tmp]
;   comment = Temporary file space
;   path = /tmp
;   read only = no
;   public = yes

# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
;   comment = Public Stuff
;   path = /home/samba
;   public = yes
;   writable = yes
;   printable = no
;   write list = @staff

# Other examples.
#
# A private printer, usable only by fred. Spool data will be placed in fred's
# home directory. Note that fred must have write access to the spool directory,
# wherever it is.
;[fredsprn]
;   comment = Fred's Printer
;   valid users = fred
;   path = /home/fred
;   printer = freds_printer
;   public = no
;   writable = no
;   printable = yes

# A private directory, usable only by fred. Note that fred requires write
# access to the directory.
;[fredsdir]
;   comment = Fred's Service
;   path = /usr/somewhere/private
;   valid users = fred
;   public = no
;   writable = yes
;   printable = no

# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %U option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
;  comment = PC Directories
;  path = /usr/local/pc/%m
;  public = no
;  writable = yes

# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user's files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
;   path = /usr/somewhere/else/public
;   public = yes
;   only guest = yes
;   writable = yes
;   printable = no

# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
;   comment = Mary's and Fred's stuff
;   path = /usr/somewhere/shared
;   valid users = mary fred
;   public = no
;   writable = yes
;   printable = no
;   create mask = 0765

Configurazione di Samba

[Illustration]

Premessa:
Proverò a spiegare qui il lavoro che abbiamo fatto per implementare un server linux con samba usato come domain controller per una rete Windows.
La gestione dei permessi utenti, i profili... saranno spiegati in dettaglio.
Questo documento si basa su Debian GNU/Linux 2.2, il che potrebbe significare che il vostro file smb.conf di default potrebbe presentare alcune differenze dipendenti dalla vostra distribuzione.
La versione di samba usata per questo articolo è la 2.0.7

_________________ _________________ _________________

Installare Samba

Suppongo che tu conosca già un minimo su samba e che sia installato sul tuo server.
Se così non fosse, per una veloce installazione, prova:
Debian: apt-get install samba
RedHat(Mandrake): rpm -vih /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*

Il file di configurazione: impostazioni generali

Samba usa un unico file di configurazione nel quale trovi blocchi come [global].

Solo un file di configurazione per samba!


 
<un smb.conf minimalista>
[global]
   printing = bsd
   printcap name = /etc/printcap
   load printers = yes
   guest account = pcguest

   log file = /usr/local/samba/log.%m

[tmp]
  comment = Temporary file space
  path = /tmp
  read only = yes
  public = yes
</file>
 

Se lanci samba con questo file di configurazione, le macchine windows nella tua rete locale saranno in grado di vedere, in Risorse di rete, che una macchina chiamata (il nome della linuxbox) condivide una directory temp nella quale hai il permesso di scrittura.

ATTENZIONE: quando aggiorni il file di configurazione di samba, devi far ripartire samba usando lo script /etc/init.d/samba restart (per debian)

 

Il file di configurazione, parametri "avanzati"

Proviamo i seguenti parametri:

 

Variabili di Samba

Variabile Definizione
Variabili client
%a Architettura dei client
Esempio: Win95, WfWg, WinNT, Samba ...
%I Indirizzo ip del client
%m Nome netbios del client
%M Nome dns del client
Variabili utenti
%g Gruppo primario dell] utente %u
%H Home directory dell'utente %u
%u Utente unix
Variabili condivisioni
%P Root della condivisione corrente
%S Nome della condivisione corrente
Variabili server
%h Nome DNS del server Samba
%L Nome netbios del server Samba
%v Versione Samba
Variabili varie
%T Data e ora corrente

Esempio con queste variabili: se le macchine della tua rete hanno windows 3.11 e windows 98, puoi creare due file di configurazione, una per ciascun sistema, utilizzando la variabile %a.

 

Risultato: il nostro file di configurazione

<smb.conf file>

[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid users = root

; metti il nome netbios della tua macchina
netbios name = pantoufle
; la rete su cui deve stare in ascolto samba
; (non mettere samba in ascolto sull'interfaccia di rete collegata a internet!)
interfaces = 192.168.0.1/255.255.255.0

; security user richiede che ogni utente abbia un account unix sul server samba
security = user

; Il nome del workgroup al quale appartiene il server
workgroup = rycks
; Descrizione del server
; %h indica il nome dns del server e %v la versione di samba
server string = %h server (Samba %v)

; Vogliamo usare il log di samba, non solo syslog
syslog only = no

; il minor numero di informazioni vengono scritte su syslog,
; le altre informazioni si trovano i /var/log/smb(nmb)/
syslog = 0;

; ottimizzazioni
socket options = IPTOS_LOWDELAY TCP_NODELAY \
SO_SNDBUF=4096 SO_RCVBUF=4096

; Usiamo le apssword criptate. Attenzione,
; ogni client W95 deve essere patchato con la MS SMB
; security patch.
; NT4 deve essere patchato con il SP3 o superiore...
; wfg probabilmente non supporta le password criptate:(
encrypt passwords = yes

; Questo server funziona anche da server wins.
wins support = yes

; Livello Sistema Operativo. Dato che il nostro server funge da domain master, local logons, etc...
; diamogli un livello piú alto di un server NT, se presente!
os level = 34

; Gestione dominio
domain master = yes
local master = yes
preferred master = yes

; Gestione delle connessioni al dominio
domain logons = yes

; Che script eseguire quando il client si connette?
; %g corrisponde al nome del gruppo primario dell'utente che si connette
logon script = %g.bat
; In quale directory troviamo gli script di avvio?
; %L é il nome netbios del server samba
logon path=\\%L\netlogon
; Dove conservare i profili utenti?
; %U indica il login utente
logon home=\\%L\%U\winprofile

; In quale ordine devono essere controllate le risorse per trovare
; il nome della macchina?
name resolve order = lmhosts host wins bcast

; Samba deve essere utilizzato come dns proxy?
dns proxy = no

; Mantieni i nomi dei file e maiscole/minuscole
preserve case = yes
short preserve case = yes

; Sincronizzare le password windows e unix?
unix password sync = yes

; Cosa usare per la sincronizzazione delle password
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* \
%n\n *Retype\snew\sUNIX\spassword:* %n\n .

; Dimensione massima del file di log,
; per evitare di riempire la directory /var
max log size = 1000

; Samba funge da time server: buona cosa per sincronizzare
; l'ora dei client.
; Useremo questa feature dal file logon .bat
time server = yes

; Specifichiamo dove si trovano i netlogon.
; Viene usato solo alla connessione,
; quindi non abbiamo bisogno di renderlo pubblico.
[netlogon]
path = /home/netlogon/%g
public = no
writeable = no
browseable = no

; La Home per tutti gli utenti
[homes]
comment = Home Directories
browseable = no

; Ci possono scrivere, no?
read only = no

; La mask Unix per la creazione di file
create mask = 0700

; Per motivi di sicurezza, anche la mask delle
; directory viene impostata a 0700!
directory mask = 0700


;Condividiamo l'FTP. È più facile trovarlo
; nelle Risorse di Rete piuttosto che lanciare
; un programma apposito.
[ftp]
path = /home/ftp/pub
public = yes
printable = no
guest ok = yes

; La directory temporanea
[tmp]
path = /tmp
public = yes
printable = no
guest ok = yes
writable = yes

; Un'altra directory temporanea speciale
; per un utente che ha bisogno di molto spazio!
[bigtemp]
path = /home/bigtemp
public = yes
printable = no
guest ok = yes
valid users = erics
writable = yes

</smb.conf file>
 

 

Cos'abbiamo sul server

In breve, sul server dovremmo avere:
 



 
<file /home/netlogon/admin.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
</file admin.bat>

 

<file /home/netlogon/teachers/teachers.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
regedit /s \\pantoufle\netlogon\teachers.reg
</file teachers.bat>

 

<file /home/netlogon/pupils/pupils.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
regedit /s \\pantoufle\netlogon\pupils.reg
</file pupils.bat>

 

<file /home/netlogon/teachers/teachers.reg>
[HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\User Shell Folders]
"Personal"="P:\\"
</file teachers.reg>

 

<file /home/netlogon/pupils/pupils.reg>
[HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\User Shell Folders]
"Personal"="P:\\"
</file pupils.reg>

 

Questo file permette di montare automaticamente la directory personale di ogni utente come drive P: e la directory temporanea come drive T:. Anche l'orario di sistema viene preso dal server samba.

NOTA: Il file .bat deve avere le linee terminate alla maniera del DOS. Il modo più semplice di crearlo è di usare il Blocco Note, per esempio, e poi mandarlo sul server.

 

Definire le politiche di sicurezza del sistema (C) (TM) (R)

Rendere sicuro Windows è quasi possibile, usando un domain controller.

È un titolo! Beh, l'ho preso in prestito dalla documentazione MS riguardante i loro tool di politica di sistema.

Per creare una politica di sistema in Windows, per esempio per impedire a certi utenti (tutti?) di lanciare regedit, un programma DOS, ecc. dovete usare POLEDIT che si trova sul CD di Windows 98.

Lanciate PolEdit, date un'occhiata al suo help, scrivetevi le informazioni... questo articolo non è fatto per insegnarvi come funziona un software proprietario.

Una volta che il vostro file .POL è pronto, copiatelo sul vostro server samba, nella directory specificata dal PATH nel gruppo [netlogon].

ATTENZIONE: Per i client W9x il file per le strategie di sistema è CONFIG.POL... per WindowsNT ha un altro nome, e visto che non conosco NT non ve lo so dire :'(
No, non mandatemi una versione di NT per provare. Grazie comunque, siete molto gentili :o)

NOTA: PolEdit consente di creare gruppi e utenti, ma non ci siamo ancora riusciti. Solo l'utente di default viene preso in considerazione.

Per esempio, se creo il gruppo "admin"con PolEdit, a cui consento di lanciare regedit, quando mi connetto come "erics" (che ha "admin" come gruppo primario), non posso lanciare regedit :(

Per contro, create un utente "erics" con poledit... e funziona.

Visto che non siamo in vena di creare i 1056 utenti con poledit e che un'amministrazione globale degli utenti è più interessante, vi "offriamo" il seguente trucco:

Per riuscirci abbiamo aggirato il problema: abbiamo preparato 3 config.pol con i soli utenti di default, quindi sul server linux abbiamo:
/home/netlogon/teachers/CONFIG.POL
/home/netlogon/teachers/teachers.bat
/home/netlogon/pupils/CONFIG.POL
/home/netlogon/pupils/pupils.bat
/home/netlogon/admin/CONFIG.POL
/home/netlogon/admin/admin.bat
E abbiamo cambiato il file smb.conf per tenerne conto:

<smb.conf file>
[netlogon]
; abbiamo aggiunto %g per fare in modo che netlogon punti a una directory diversa
; in base al gruppo, dentro la quale c'è un file config.pol corrispondente a
; ogni gruppo di profili utente.
path = /home/netlogon/%g
public = no
writeable = no
browseable = no
</smb.conf file>
 

 

Configurazione delle Macchine Windows

Con un po' di fortuna, 20 click del mouse e un riavvio dovrebbero essere abbastanza per configurare windows!

Per un client di tipo Win98

Clickate su Avvio/Impostazioni/Pannello di Controllo e fate doppio click su Rete

Installate:

network configuration

Quindi clckate sul tab "Identificazione" e date un nome e il corrispondente gruppo di lavoro al computer.
Identity

Clickate su "Controllo di Accesso" e selezionate Controllo di Accesso a Livello Utente
Access control

Tornate alla tab di configurazione e fate doppio click su "Client per reti Microsoft"
Client for MS network

Non dimenticate di configurare il supporto TCP/IP:
Doppio click su TCP/IP
Indirizzo IP:

Configurazione WINS:  

Note "tuning/performance/buon senso?"

Durante il lavoro si nota subito un collo di bottiglia a causa dell'uso dei profili di windows.

È un dato di fatto che i profili siano pieni di roba che MS ha deciso essere importante, come la cache di IE, quella di Outlook, ecc.

In breve, questo significa che a ogni collegamento alla macchina verranno scaricati circa 10 Mb (comunque il mio è un profilo "classico", un'immagine di sfondo, ie e outlook...) a 10 Mb saranno mandati al server alla disconnessione.

10 Mb per ogni utente, in una stanza di 15 macchine (una dimensione "normale" per un laboratorio, per esempio), fanno 150 Mb e, se il palazzo contiene 10 stanze... potete solo calcolare gli utenti che si scollegano alla fine della giornata.

Dovreste quindi anticipare e sconnettervi prima delle 5... (beh, devo ammettere che è quello che facevo quando ero studente)... piuttosto che dopo le 5. È un po' come gli ingorghi del traffico delle grandi città: meglio partire 10 minuti prima oppure 2 ore dopo!

Quindi, in base alla politica che implementate, potrebbe essere una buona idea montare la home come drive P: (per esempio, P come Personale) per tutti, e spiegargli: "salvate i documenti in P e non in "Documenti", altrimenti li perderete per sempre".

A questo punto dovrete trovare un software in grado di essere configurato per avere i bookmark in P:`bookmarks.html, e lo stesso per la configurazione.

Non so nemmeno se esista nel mondo windows!

Se conoscete la soluzione, scriveteci un articolo, è una cosa degna di essere condivisa!

 

Domande e suggerimenti per un seguito

È possibile avere diversi workgroup sullo stesso dominio, come possono essere gestiti, è possibile suddividere i problemi tra vari server samba con GNU/Linux>

Come usare sia server NT che Samba>

Configurazione di client NT: l'equivalente di CONFIG.POL ha un altro nome sotto NT.

Un problema usuale quando si ha solo un server Samba (e nessun NT): sto lavorando sotto W98 e voglio condividere una risorsa locale, per esempio la mia stampante:

Visualizzate il pannello della stampante

Dopo aver clickato sul pulsante Aggiungi...

ULTIM'ORA: qualcuno mi ha dato la soluzione. È sufficiente selezionare "Controllo di accesso a livello condivisione" al passo 3 della configurazione di Windows.


Aggiungere login e password
Gestire gli utenti di un dominio con Samba non è una procedura immediata e vanno considerati alcuni aspetti fondamentali: - Samba utilizza come file delle password "/etc/samb/smbpasswd" (di default) che presenta una riga per ogni utente (sia di un dominio che di un server con normale autenticazione). In questo file è prevista una riga (con login , password criptata e altri dati) per ogni utente.
- Per ogni utente presente sul file smbpasswd DEVE essere presente un rispettivo utente sul normale file degli utenti Unix "/etc/passwd". Questo perchè Samba agisce sul sistema locale come un normale processo Unix e, anche se viene eseguito come root, accede al filesystem con i permessi degli utenti secondo quanto configurato.
- Quando Samba agisce come PDC, oltre a creare una login (sia in "/etc/samba/smbpasswd" che in "/etc/passwd") per ogni utente, si deve creare una login speciale per ogni macchina del dominio. Questa login, definita "trust account" o "computer account" ha il nome NetBios del computer seguito dal segno dollaro ($). Al primo login da parte del trust account viene generata una sorta di password che viene utilizzata per autenticare le comunicazioni fra il PDC e il client e assicurarsi che non ci siano altre macchine che possano unirsi al dominio con lo stesso nome NetBios.
- La gestione delle login (sia per gli utenti che per i computer, sia su smbpasswd che su passwd) può essere fatta in maniera manuale, con i comandi sotto riportati, o in maniera automatica, tramite l'uso della direttiva "add user script"
- Windows9x/ME anche se possono eseguire un login su un dominio, NON sono strutturati per essere dei client a pieno titolo di un dominio in quanto non ne rispettano le logiche di sicurezza e trust. Per aggiungere un computer account al dominio manualmente seguire la seguente procedura:
[root@sambaserver root]# groupadd machines (Crea un gruppo per tutti computer account)
[root@sambaserver root]# useradd -g machines -d /dev/null -s /bin/false nomeNetBios$ (Aggiunge al sistema una login, membro del gruppo machines, senza home directory, senza shell, con nome uguale al nome NetBios della macchina seguito dal segno $. Notare che questo account serve a Samba per agire sul sistema, ma è bene che non possa essere utilizzato per una normale login
[root@sambaserver root]# smbpasswd -a -m nomeNetBios (Si crea un nuovo computer account per "/etc/samba/smbpasswd" e si imposta la relativa password. L'opzione -a permette di crearlo, se non esiste, l'opzione -m indica che si tratta di una machine account, il nome NetBios della macchina da aggiungere NON va seguito da $, in questo caso, in quanto questo carattere viene aggiunto automaticamente. Non è necessario ricordare la password inserita in quanto viene gestita direttamente fra PDF e client del dominio.
Se si vuole evitare di aggiungere a mano un nuovo account per ogni macchina del dominio, si può provare ad aggiungere la seguente riga a smb.conf:
add user script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u
Verificare il path e la sintassi del comando useradd e assicurarsi di avere il gruppo machines già creato. Per aggiungere a mano le login degli utenti (non delle macchine) del dominio:
[root@sambaserver root]# useradd pippo (Aggiunge utente al /etc/passwd di sistema
[root@sambaserver root]# passwd pippo (Gli imposta la password. Se l'utente non deve accedere al sistema Unix, impostare una shell nulla in /etc/passwd)
[root@sambaserver root]# smbpasswd -a pippo (Aggiunge l'utente pippo a /etc/samba/smbpasswd e gli imposta l apassword)
NOTA: Quando si configura un client Windows NT/2k/XP per farlo diventare parte di un dominio, viene richiesta una password di amministratore. In questa situazione si deve usare la login di root con la relativa password, per cui è necessario aggiungere l'utente root anche al smbpasswd:
[root@sambaserver root]# smbpasswd -a root
Notare che se per caso si cambia la password di root con passwd e non la si aggiorna anche con smbpasswd, la password che fa testo è la seconda, quella presente in /etc/samba/smbpasswd. Per questo ed altri motivi, una volta creato un utente è buona cosa fare in modo che la sua password sul sistema Unix sia allineata con quella usata da Samba via rete. Per fare in modo che una password cambiata tramite Samba si rispecchi anche sul /etc/passwd locale si devono aggiungere a smb.conf simili righe di configurazione:
unix password sync = yes (Imposta la sincronizzazione delle password fra Samba e il sistema Unix locale)
passwd program = /usr/bin/passwd %u (la riga di comando per cambiare la password Unix. %u è la login dell'utente)
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password %n\n *Enter*
new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all*
authentication*token*updated*successfully* (La procedura di matching per gestire le richieste in output di passwd. Assicurarsi che sul proprio sistema siano utilizzate le stesse parole.
Purtroppo questa procedura non funziona al contrario: se si cambia con passwd una password Unix, si dovrà cam biarla a m ano con sm bpasswd per t enere sincronizzat a la password Unix con la password Samba. http://www.openskills.info/view/boxdetail.php?IDbox=552&boxtype=description 17/02/2004