Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 39: Riga 39:
</pre>  
</pre>  
=== Configurazione DHCP ===
=== Configurazione DHCP ===
Un server DHCP può fornire anche altre proprietà di configurazione come:
Un server DHCP può fornire anche altre proprietà di configurazione come:
<pre>
 
    *  Nome dell'host
*  Nome dell'host
    *  Nome del dominio
*  Nome del dominio
    *  Gateway predefinito
*  Gateway predefinito
    *  Server NTP (Network Time Protocol)
*  Server NTP (Network Time Protocol)
    *  Server di stampa
*  Server di stampa
</pre>
 
Il vantaggio di utilizzare DHCP è che i cambiamenti apportati alla rete, per esempio una modifica dell'indirizzo del server DNS, devono essere apportati solamente al server DHCP, mentre tutti gli host della rete vengono riconfigurati quando i client DHCP interrogano il server DHCP. Come ulteriore vantaggio, risulta anche molto semplice integrare nuovi computer nella rete, senza la necessità di controllare la disponibilità di un indirizzo IP. I conflitti nell'allocazione degli indirizzi IP sono quindi notevolmente ridotti.
Il vantaggio di utilizzare DHCP è che i cambiamenti apportati alla rete, per esempio una modifica dell'indirizzo del server DNS, devono essere apportati solamente al server DHCP, mentre tutti gli host della rete vengono riconfigurati quando i client DHCP interrogano il server DHCP. Come ulteriore vantaggio, risulta anche molto semplice integrare nuovi computer nella rete, senza la necessità di controllare la disponibilità di un indirizzo IP. I conflitti nell'allocazione degli indirizzi IP sono quindi notevolmente ridotti.


Riga 117: Riga 118:
     * Come server primario, BIND9 legge i dati per una zona da un file ed è autoritativo per quella zona.
     * Come server primario, BIND9 legge i dati per una zona da un file ed è autoritativo per quella zona.
     * Nella configurazione come server secondario, BIN9 ottiene i dati della zona da un altro server dei nomi per quella zona.
     * Nella configurazione come server secondario, BIN9 ottiene i dati della zona da un altro server dei nomi per quella zona.
Installazione:
Installazione:
<pre>
# apt-get install bind9 dnsutils
# apt-get install bind9 dnsutils
 
</pre>
La configurazione che descriverò è basata su di un server primario che è autoritativo per quella zona. Descriverò solo la zona che ci servirà per risolvere i nomi dei client perciò non descriverò la zona localhost (che dovrebbe essere configurata di default).
La configurazione che descriverò è basata su di un server primario che è autoritativo per quella zona. Descriverò solo la zona che ci servirà per risolvere i nomi dei client perciò non descriverò la zona localhost (che dovrebbe essere configurata di default).


Riga 239: Riga 242:
la chiave è creata con un determinato algoritmo che in questo caso è l'hash md5.
la chiave è creata con un determinato algoritmo che in questo caso è l'hash md5.
Il comando per creare la chiave è:
Il comando per creare la chiave è:
<pre>
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndc-key
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndc-key
</pre>
Copiare la chiave generata nel file /etc/bind/rndc.key, se il file non c'è bisogna crearlo.
Copiare la chiave generata nel file /etc/bind/rndc.key, se il file non c'è bisogna crearlo.
Un esempio di chiave generata è:
Un esempio di chiave generata è:
Riga 984: Riga 989:
# service nmbd start
# service nmbd start
</pre>
</pre>
== Configurare i SMBLDAP TOOLS ==
I smbldap-tools sostituiscono i comandi standard di UNIX per la gestione di gruppi, utenti e password in modo da dialogare direttamente con il server LDAP e fornire un metodo per gestire in contemporanea gli account UNIX e SAMBA.<br/>
=== Installazione ===
Installare il pacchetto smbldap-tools
<pre>
# apt-get install smbldap-tools
</pre>
=== Configurazione ===
Modificare il file <tt>/etc/smbldap-tools/smbldap_bind.conf</tt> inserendo il DN dell'amministratore del server LDAP e la sua password. Il DN dell'amministratore è stato impostato automaticamente durante l'installazione del pacchetto Debian di slapd e corrisponde a <nowiki>"cn=admin,dc=dominio,dc=local"</nowiki>, in cui il dominio dipende dalle configurazioni sopra riportate per il server LDAP. La password è quella richiesta in fase di installazione del server LDAP.<br/>
Editate ''/etc/smbldap-tools/smbldap_bind.conf'':
<pre>
############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
slaveDN="cn=admin,dc=dominio,dc=local"
slavePw="secret"
masterDN="cn=admin,dc=dominio,dc=local"
masterPw="secret"
</pre>
Recuperate il SID di DOMINIO:
<pre>
# net getlocalsid DOMINIO
DOMINIO
SID=":::::::::::::::::::::::::::::::::::"
</pre>
Il SID va poi trascritto in smbldap.conf
Il contenuto del file dovrebbe essere il seguente:<br/>
'''/etc/smbldap-tools/smbldap.conf''':
<pre>
##############################################################################
#
# General Configuration
#
##############################################################################
# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID=":::::::::::::::::::::::::::::::::::"
# Domain name the Samba server is in charged.
# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="IDEALX-NT"
sambaDomain="DOMINIO"
##############################################################################
#
# LDAP Configuration
#
##############################################################################
# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
#  (typically a replication directory)
# Slave LDAP server
# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="127.0.0.1"
# Slave LDAP port
# If not defined, parameter is set to "389"
slavePort="389"
# Master LDAP server: needed for write operations
# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="127.0.0.1"
# Master LDAP port
# If not defined, parameter is set to "389"
masterPort="389"
# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "1"
ldapTLS="0"
# How to verify the server's certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify=""
# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile=""
# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientcert=""
# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientkey=""
# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=dominio,dc=local"
# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for usersdn
usersdn="ou=users,${suffix}"
# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for computersdn
computersdn="ou=computers,${suffix}"
# Where are stored Groups
# Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for groupsdn
groupsdn="ou=groups,${suffix}"
# Where are stored Idmap entries (used if samba is a domain member server)
# Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for idmapdn
idmapdn="ou=idmap,${suffix}"
# Where to store next uidNumber and gidNumber available for new users and groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Default scope Used
scope="sub"
# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="MD5"
# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"
##############################################################################
#
# Unix Accounts Configuration
#
##############################################################################
# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/false"
# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"
# Default mode used for user homeDirectory
userHomeDirectoryMode="700"
# Gecos
userGecos="System User"
# Default User (POSIX and Samba) GID
defaultUserGid="513"
# Default Computer (Samba) GID
defaultComputerGid="515"
# Skel dir
skeletonDir="/etc/skel"
# Default password validation time (time in days) Comment the next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
#defaultMaxPasswordAge="180"
##############################################################################
#
# SAMBA Configuration
#
##############################################################################
# The UNC path to home drives location (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome=""
# The UNC path to profiles locations (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile=""
# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="H:"
# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under dos
userScript="logon.bat"
# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# Ex: mailDomain="idealx.com"
mailDomain="milanoaccademia.lan"
##############################################################################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
##############################################################################
# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
# comment out the following line to get rid of the default banner
# no_banner="1"
</pre>
<pre>
'''Da notare:'''
* userLoginShell="/bin/false" ( In questo modo gli utenti non possono loggarsi in unix equindi neanche in ssh)
* #defaultMaxPasswordAge="180" (se volete che la password scada decommentatela ed indicata la scadenza)
* userSmbHome="" e userProfile="" (sono vuote perchè se le avete impostate già in samba non serve farlo due volte)
</pre>
'''Nota:'''
<pre>
Se volete che l'utente si logghi su unix e ssh è necessario modificare la shell con il comando:
# smbldap-usermod -s /bin/bash utente
(sempre che sia già stato fatto il popolamento,come di seguito descritto, e sempre che l'utente sia già stato creato) 
</pre>
Assegnare i permessi
<pre>
# chmod 0644 /etc/smbldap-tools/smbldap.conf
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
</pre>
== Popolamento del database LDAP ==
Per un funzionamento corretto SAMBA ha bisogno di diversi gruppi predefiniti e 2 utenti: Administrator e nobody.<br/>
La tabella seguente riepiloga i gruppi e gli utenti di default di un dominio Windows:
{{Box | Nome - UID - Tipo |
Domain Admins:*:512:<br/>
Domain Users:*:513:<br/>
Domain Guests:*:514:<br/>
Domain Computers:*:515:<br/>
Administrators:*:544:<br/>
Account Operators:*:548:<br/>
Print Operators:*:550:<br/>
Backup Operators:*:551:<br/>
Replicators:*:552:<br/>
}}
Inoltre, affinché si riesca ad aggiungere computer al dominio in modo automantico (da macchine Windows), deve esistere un utente con uid = 0 da utilizzare per questa operazione. Tale utente può essere un utente root (da aggiungere a mano) o lo stesso Administrator cambiandogli l'uid. Quest'ultima è la scelta presa in questa configurazione, in modo da avere un utente Administrator che è Administrator per Samba e root per il "dominio" UNIX.
Per creare i gruppi predefiniti e gli utenti utilizzati da Samba è possibile procedere in due modi.
=== 1 - Utilizzo degli script forniti con smbldap-tools ===
La prima via consiste nel fare uso di alcuni script forniti con il pacchetto <tt>smbldap-tools</tt> che abbiamo già installato:
<pre>
# smbldap-populate -a root -k 0
# smbldap-useradd -a -m -c "Admin" Administrator
# smbldap-usermod -G "Domain Admins" Administrator
</pre>
Il parametro "-k 0" imposta l'UID di Administrator a 0, facendolo di fatto coincidere con l'utente root. Gli altri comandi fanno sì che Administrator sia aggiunto al gruppo dei Domain Admins. Durante l'esecuzione del comando vengono riepilogati i record aggiunti e vi verrà chiesto di cambiare (se volete) la password di Administrator; potete tranquillamente riscrivere la stessa password già impostata precedentemente.<br/>
Per verificare lo stato del database LDAP e i record aggiunti potete usare i comandi:
<pre>
# ldapsearch -x | less
</pre>
e:
<pre>
# ldapsearch -x uid=Administrator
</pre>
Su alcuni howto ho trovato suggerito, a questo punto, di cambiare ancora la password di Administrator con il comando:
<pre>
# smbldap-passwd Administrator
</pre>
Sebbene non mi sia chiaro il motivo, l'ho fatto, reinserendo nuovamente la stessa password utilizzata fino a questo punto della guida.
Questo sarà anche il comando che dovrà essere normalmente utilizzato per la gestione delle password.
=== Installazione del demone name service caching daemon (nscd) ===
Poichè il nostro server LDAP sarà consultato in maniera continuativa, potrebbe essere una buona idea installare un servizio di cache per alcuni dati degli utenti. In questo modo i dati contenuti in cache saranno forniti senza eseguire un accesso al database LDAP, velocizzando di conseguenza i tempi di risposta del server. Il demone nscd (name service caching daemon) esegue esattamente questa cosa:
<pre>
# apt-get install nscd
</pre>
La configurazione di default è più che sufficiente per i nostri scopi.<br/>
Questo potrebbe inoltre essere un buon momento per riavviare il demone di Samba:
<pre>
# /etc/init.d/samba restart
</pre>
=== Test di funzionamento ===
Riavviate il vostro server e controllate eventuali messaggi di errore al boot.
Una volta ripartito, con i comandi:
<pre>
getent passwd
getent group
</pre>
dovremmo vedere elencati anche gli utenti e i gruppi di dominio OpenLDAP.
Il comando:
<pre>
smbclient -L localhost -U Administrator
</pre>
dovrebbe, dopo aver richiesto la password di Administrator, mostrarci le condivisioni samba del nostro server.
== Assegnazione dei permessi agli utenti di dominio ==
Affinchè le directory dei profili e altre cosette funzionino senza intoppi è necessario assegnare i giusti permessi a gruppi di dominio o a utenti se è specifico per quell'utente:
<pre>
net -S server -U root rpc rights grant "DOMINIO\Domain Admins" SeMachineAccountPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege SeRemoteShutdownPrivilege
</pre>
<pre>
net -S server -U root rpc rights grant "DOMINIO\rossi" SePrintOperatorPrivilege
</pre>
dove server in questo caso è il netbios name di Samba.
== Aggiungere i primi utenti di dominio ==
Il pacchetto smbldap-tools presente in Lenny, a differenza di quelli di Etch e Sarge, effettua un controllo di uid e gid ogni qualvolta si tenta di aggiungere un utente OpenLDAP al dominio, al fine di evitare sovrapposizioni nei valori; pertanto non è più necessario specificare a mano i corretti valori di uid e gid.
Adesso siamo pronti per la creazione del primo utente con il comando:
<pre>
# smbldap-useradd -a -m -c "Nome Utente" username
</pre>
Dove -a serve per creare anche i dati UNIX, -m crea l'home directory e -c specifica il nome completo.<br/>
Infine impostare la password dell'utente con:
<pre>
# smbldap-passwd username
</pre>
Per verificare il tutto usare il comando:
<pre>
# smbldap-usershow username
</pre>
Creiamo ora i gruppi per organizzare gli utenti all'interno del nostro dominio:
<pre>
# smbldap-groupadd "NomeGruppo"
</pre>
Aggiungiamo gli utenti ai gruppi desiderati:
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
</pre>
<br/>
Se decidessimo di utilizzare la GUI fornita da phpldapadmin non dimentichiamoci di '''creare a mano''' le homes directory:
Ogni utente deve essere aggiunto ad un gruppo per prendere le credenziali, perciò non dimentichiamo di dare sempre il comando:
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
</pre>
Ricordate di creare la cartella del roaming profile altrimenti al log in vi darà errore e il profilo non partirà:
<pre>
# mkdir -p /home/samba/profiles/%u (%u=nome utente)
# chown -R "%u":"Domain Users" /home/samba/profiles/%u
# chmod 700 /home/samba/profiles/%u
</pre>
== Script per la creazione utenti ==
per facilitare la vita a tutti ho creato uno script che con un solo comando vi assegna i permessi, crea gli utenti, crea la cartella profiles e aggiunge l'utente al gruppo Domain Users:
<pre>
# touch /home/samba/adduser.sh
</pre>
editiamolo così:
<pre>
#!/bin/bash
/usr/sbin/smbldap-useradd -a -m -c "${2}" "${1}"
/usr/sbin/smbldap-usermod -G "Domain Users" "${1}"
USER_PROFILE="/srv/samba/profiles/"${1}""
/bin/mkdir -p "${USER_PROFILE}"
/bin/chown -R "${1}":"Domain Users" "${USER_PROFILE}"
/bin/chmod 700 "${USER_PROFILE}"
USER_HOME="/home/"${1}""
/bin/chown -R "${1}":"Domain Users" "${USER_HOME}"
/bin/chmod 700 "${USER_HOME}"
/usr/sbin/smbldap-passwd "${1}"
</pre>
Verificate i percorsi dei comandi in quanto possono cambiare da versione a versione.
Dare l'esecuzione:
<pre>
# chmod +x /home/samba/adduser.sh
</pre>
Ora non vi resta altro che eseguire:
<pre>
# /home/samba/adduser.sh utente "Nome Cognome utente" (vanno scritte anche le "")
# PASSWORD: .......
</pre>
L'utente è così creato.
== Test e connessione al dominio ==
Il nostro server è ora pronto per essere utilizzato. Per testarne le funzionalità è possibile procedere per gradi, in modo da isolare quelli che sono i problemi di configurazione da quelli che sono i problemi di rete o dei client Windows.<br/>
A tal fine il primo accesso può essere fatto dal server stesso con il comando:
<pre>
# smbclient -L localhost -U Administrator
</pre>
Dovrebbe essere richiesta la password impostata precedentemente per l'utente Administrator e, di seguito, dovrebbero venire elencate le condivisioni samba impostate sul server.
<br/><br/>
La procedura di connessione dei client al dominio varia a seconda del sistema operativo utilizzato sulle macchine client:
<br/><br/>
*'''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 Administrator, 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 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 fornendo le credenziali di Administrator.
*'''Windows Vista'''
# Non ancora testato.
*'''Windows 7'''
# Su Windows 7 Professional o Ultimate (gli unici che possono effettuare un join a un dominio) occorre modificare due chiavi di registro:
<pre>
HKLM\System\CCS\Services\LanmanWorkstation\Parameters
DWORD  DomainCompatibilityMode = 1
DWORD  DNSNameResolutionRequired = 0
</pre>
A questo punto la procedura di unione al dominio procede sulla falsariga di quella valida per Windows XP.
== Replica del database LDAP su un altro server ==
Se siete interessati a fornire ridondanza alla vostra rete, potete prendere in considerazione l'idea di inserire un secondo server OpenLDAP sincronizzato con il server principale che abbiamo appena configurato.<br/>
In tal caso suggerisco di seguire [[Implementare un'architettura ridondante master/slave OpenLDAP | questa guida]], nella quale viene utilizzato lo stesso database LDAP che abbiamo appena configurato per costruire un server di replica.
== db4 ==
OpenLDAP ha la brutta abitudine di non risistemarsi per bene quando la donna delle pulizie inciampa nell'interruttore generale della corrente. Perciò conviene installare:
<pre>
# apt-get install db4.2-util
</pre>
Questo pacchetto contiene l'utility db4.2_recover che viene lanciata automaticamente ad ogni restart di ldap, risolvendo eventuali problemi di incongruenza del Barkley DB.
<br/>
== Comandi utili e consigli finali ==
=== Creazione di utenti ===
<pre>
# smbldap-useradd -a -m -c "Descrizione Utente" nome.utente
# smbldap-passwd nome.utente
</pre>
Per verificare il tutto usare il comando
<pre>
# smbldap-usershow nome.utente
</pre>
=== Creazione di un gruppo ===
<pre>
# smbldap-groupadd "NomeGruppo"
</pre>
=== Aggiunta di un utente a un gruppo ===
Per impostare il gruppo primario dell'utente:
<pre>
# smbldap-usermod -g "NomeGruppo" nome.utente
</pre>
Per aggiungere l'utente a ulteriori gruppi:
<pre>
# smbldap-usermod -G gruppo1,gruppo2,gruppo3 nome.utente
</pre>
=== Elencare i gruppi memorizzati in LDAP ===
<pre>
# ldapsearch -x objectClass=posixGroup
</pre>
=== Elencare gli utenti di un gruppo ===
<pre>
# smbldap-groupshow "gruppo"
</pre>
=== Backuppare una directory condivisa dal server usando le credenziali di un utente specifico ===
<pre>
smbclient //nomeserver/nomecartella -U nome.utente%password.utente -N -Tc backup.tar /percorso/locale/del/backup
</pre>
=== Elencare le risorse condivise di una macchina ===
<pre>
smbclient -L nomeserver
</pre>
=== Per fare delle modifiche nel DB in maniera semplice ===
<pre>
  slapcat -l /tmp/backup.ldif   
  # stoppare il servizio
  /etc/init.d/slapd stop
  # una copia del vecchio db
  cp -r /var/lib/ldap  /var/lib/ldap.old
  mkdir /var/lib/ldap
  Modificare il file backup.ldif e quindi reimportarlo
  slapadd -c -l /tmp/backup.ldif
</pre>
=== Comandi utili LDAP ===
<pre>
ldapsearch -b "dc=miodominio,dc=local" -x
ldapsearch -b "dc=miodominio,dc=local" -LLL "cn=nomedellutente*" -x
ldapadd -x -W -D "cn=admin,dc=miodominio,dc=local" -f entry.ldif  # per importare un ldif
ldapdelete  -x  -D "cn=admin,dc=miodominio,dc=local" -W "cn= nomeutente,dc=logic"
</pre>
Nel caso si reinstalli slapd controllare non ci sia un backup in /var/backups con lo stesso numero di versione, altrimenti un dpkg.reconfigure non ricrea il file di configurazione corretto.
== Per approfondimenti ==
[[Samba e OpenLDAP: creare un controller di dominio]]<br/>
[[Samba e OpenLDAP: creare un controller di dominio con Debian Etch]]<br/>
[[Samba e OpenLDAP: creare un controller di dominio con Debian Lenny]]<br/>
[[Samba, OpenLDAP, Kerberos: creare un controller di dominio sicuro con Debian Lenny]]<br/>
[[Implementare un'architettura ridondante master/slave OpenLDAP]]<br/>
[[Scansione antivirus con ClamAV su condivisioni Samba]]<br/>
[[Accedere alle condivisioni Samba dal browser]]<br/>
[[Creare un Cestino di rete per le condivisioni Samba]]<br/>
<br/>
<br/>
: [[Utente:Gigipin|Gigipin]]
----
[[Categoria:Server]]
[[Categoria:Networking]]
282

contributi