282
contributi
Nessun oggetto della modifica |
|||
Riga 1 246: | Riga 1 246: | ||
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf | # chmod 0600 /etc/smbldap-tools/smbldap_bind.conf | ||
</pre> | </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. |
contributi