Installazione di Samba come PDC su Debian Squeeze (sambra 3.5.6)

Installazione di Samba

Preparazione dei gruppi

Prima di tutto, occorre decidere a quali gruppi su Linux dovranno coincidere i gruppi di base di Windows per il dominio, che sono "domain admins", "domain users", "domain guests". Una mappatura civile potrebbe essere questa:

Gruppo Windows

Gruppo Linux

Domain Admins

ntadmins

Domain users

users

Domain Guests

nogroup

Anche se non voglio che l'utente "root" venga usato in Samba (vedi in seguito il paragrafo "utilizzo dei privilegi per gli utenti"), e` necessario crearlo in samba (dopo averlo aggiunto al gruppo ntadmins in linux) per motivi di amministrazione.

E` possibile creare anche altri gruppi, ovviamente, ma questi sono i minimi necessari perche` il tutto funzioni.

Creazione del mapping dei gruppi

Per mappare i gruppi e` opportuno creare un semplice shell script da tenere in seguito per riferimento (o per ricreare i mapping), da mettere, per esempio, in /etc/samba.

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=d
net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=d
net groupmap add ntgroup="Domain Guests" unixgroup=nogroup rid=514 type=d

Eseguendo questo script e poi eseguendo il comando net groupmap list si dovrebbero vedere i seguenti mapping:

Domain Guests (S-1-5-21-219693454-829537487-2401495533-514) -> nogroup
Domain Admins (S-1-5-21-219693454-829537487-2401495533-512) -> ntadmins
Domain Users (S-1-5-21-219693454-829537487-2401495533-513) -> users

Tutti i gruppi non appartenenti al dominio (quindi che non iniziano per "domain") non vanno mappati, o meglio li si puo` anche mappare, ma non servono a nulla.

Aggiunta di gruppi oltre a quelli di base

Volendo aggiungere altri gruppi oltre a quelli elencati prima, occorre ovviamente aggiungere i gruppi in Linux (ed eventualmente inserirvi gli utenti). Questo e` sufficiente allo scopo di usare i gruppi per limitare l'accesso ai files sharati da Samba, ma non so se sia sufficiente nel caso in cui samba faccia da PDC per dei member servers i quali a loro volta devono fare uso delle definizioni dei gruppi fatte sul PDC per le loro ACL.

Se ho capito bene (e` da verificare) in questo ultimo caso e` necessario mappare anche i gruppi aggiuntivi. Nella mappatura inoltre si puo` anche fare uso di nomi non validi su Linux (con gli spazi, per dire).

Per esempio, per creare e mappare un gruppo di nome "amministrazione" da usare sul dominio Windows, si fa cosi`:

addgroup amministrazione
net groupmap add ntgroup="Amministrazione"  unixgroup=amministrazione type=d

Creazione degli utenti

Se non si vogliono avere in samba tutti gli inutili utenti di sistema (tutti con la password disabilitata) e` possibile cancellarli prima di iniziare a creare gli utenti "buoni". Questo one-liner serve a rasare il database degli utenti (prende la lista degli utenti e li cancella uno per uno)

pdbedit -L | awk -F ":" '{print ($1)}' | xargs -n 1   pdbedit -x -u

Solo DOPO aver creato i mapping dei gruppi, si possono creare gli utenti su Samba, con il comando pdbedit o piu` semplicemente con smbpasswd -a <username>. Naturalmente gli utenti devono esistere gia` con lo stesso username in /etc/passwd.

Nota: Fino a ieri la documentazione di Samba riportava il RID dell'utente administrator come "512", adesso e` "500".

Utilizzo dei privilegi per gli utenti

Da samba 3.0.11 in poi dovrebbe essere possibile dare a utenti o gruppi i privilegi che tipicamente erano solo di root (come ad esempio aggiungere macchine al dominio) pertando dovrebbe essere possibile (e sensato) creare un utente administrator con SID 500 (come piace a windows) e poi dargli i privilegi tipi di root, cosi`:

net rpc rights grant <utente> <privilego>

Per esempio, per dare all'utente administrator il privilegio di aggiungere workstation al dominio, cosa utile in ogni caso, si fa:

net rpc rights grant administrator SeMachineAccountPrivilege

Per sapere quali privilegi sono disponibili:

net rpc rights list

Per sapere quali utenti hanno quali privilegi:

net rpc rights list accounts

I privilegi disponibili, destinati ad aumentare di numero nel futuro, sono:

SeMachineAccountPrivilege  Add machines to domain
SeTakeOwnershipPrivilege   Take ownership of files or other objects
SeBackupPrivilege          Back up files and directories
SeRestorePrivilege         Restore files and directories
SeRemoteShutdownPrivilege  Force shutdown from a remote system
SePrintOperatorPrivilege   Manage printers
SeAddUsersPrivilege        Add users and groups to the domain
SeDiskOperatorPrivilege    Manage disk shares

Perche` questo funzioni, occorre avere in smb.conf la dicitura enable privileges = yes nella sezione [global].

Conclusione

Una volta creati i mapping dei gruppi di base, e almeno l'utente administrator, e` possibile iniziare a provare a joinare una workstation al dominio ed eventualmente verificare che si riesca a fare login sulla WS sia con l'utente administrator che con altri utenti del dominio.

Samba/NuovaInstallazione (last edited 2011-03-07 23:23:57 by Kurgan)