E’ facile creare una condivisione di tipi Windows (SMB/CIFS) e condividerla usando permessi locali come l’accesso anonimo/guest oppure un utente creato ad hoc sul server Linux, ma la cosa diventa più difficile se vogliamo creare un file server su Linux e usare gli utenti di Windows Active Directory e i loro permessi.
Il motivo è alquanto semplice: Linux non è nato per interagire con Microsoft Active Directory.

Sfortunatamente tutte le soluzioni ci portano ad almeno un compromesso, per cui se volete una soluzione semplice, facile da gestire e funzionante al 100%, scegliete di fare un file server Windows.
Dopo avervi spaventato e consigliato caldamente a rivolgervi a Windows per creare share per Windows, vi spiego come farle su Linux.

Brevemente, la prima cosa da fare è installare Samba, poi unirsi (join) al dominio Microsoft dove ci sono gli utenti che accederanno alle risorse e infine configurare la share con i permessi opportuni.

Requisiti e scenario

Il file system dove andremo a creare la cartella condivisa deve permettere l’uso delle ACL e degli attributi estesi (es. XFS o EXT4 con opzioni di mount diverse dal default); non sono necessari una partizione o un logical volume dedicati, tuttavia l’uso di uno di questi ci permette di limitare lo spazio disco a disposizione della share senza scomodare tecnologie come le quote.

Il nostro server Linux di riferimento è una CentOS 8 (la guida funziona anche per RHEL 8 e Oracle Linux 8), queste distribuzioni mettono a disposizione una versione recente di Samba che ci permette di ridurre i parametri di configurazione.

Nel esempio, il dominio di cui il nostro file server diventerà membro si chiama greensys.local, il server si chiama LinuxFiles (il suo hostname LinuxFiles) è per cui abbiate cura di sostituire questi nomi con il vostro dominio Microsoft e con l’hostname del vostro file server.

Sarebbe bene impostare un indirizzo IP statico al server in quanto è necessario che la rete sia sempre disponibile prima della partenza del servizio samba.

Verifichiamo che i dns del file server corrispondano a quelli del dominio Microsoft.

Toshiba 4TB Canvio Basics Portable External Hard Drive,USB 3.2. Gen 1, Black (HDTB440EK3AA)

Mettere nel dominio il file server Samba integrato con Active Directory

Installiamo il software Samba e le utility per fare join al dominio:

yum install realmd oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind samba-common-tools samba-winbind-krb5-locator samba

Una volta installato il software facciamo una copia di salvataggio del file smb.conf

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Poi verifichiamo tramite il comando:

realm discover greensys.local

se effettivamente raggiungiamo il dominio.

Facciamo dunque join al dominio (verrà richiesta la password dell’utente Administrator):

realm join --membership-software=samba --client-software=winbind greensys.local

Se non possiamo usare l’utente Administrator del dominio, ne possiamo specificare un altro con l’opzione -U (realm join -v [-U user] realm-name).

Verifichiamo che il servizio winbind sia attivo (esso dovrà attivarsi sempre prima del servizio samba) riportando active (running).

systemctl status winbind

Verifichiamo per esempio quali sono i permessi dell’utente Administrator del dominio (dove greensys è il nome del vostro dominio):

getent passwd "greensys\administrator"

Attiviamo dunque il servizio samba (smb)

systemctl enable --now smb

Con la precedente istruzione abbiamo completato la fare di join a dominio che come potete notare non richiede un riavvio del server.

Nel prossimo articolo il resto della configurazione.

Di valent

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *