====== Creazione di uno share per le home degli utenti ======
** Provato su Samba 4.22 in Debian 13. Vecchie versioni hanno logiche leggermente diverse**
Riferimento: https://wiki.samba.org/index.php/Windows_User_Home_Folders
Lo scopo e` quello di avere degli share privati per i vari utenti, compatibili con il metodo usato di recente in Windows. Il nome dello share, "users", e` quello che usa windows di default e lo voglio mantenere. Gli share degli utenti saranno visibili sotto lo share "users" in una directory con il nome dell'utente, accessibile ovviamente solo all'utente.
* Prima di tutto, configurare lo share in Samba, come faremmo per uno share "normale". Possiamo scegliere dove salvare le nostre home, e qui non abbiamo problemi di scelta a meno che non vogliamo integrare le home degli utenti Linux con quelle di Samba. Io in particolare in questo caso non voglio farlo, anche perche` non ho di fatto utenti che accedono in shell al file server contenente le home.
[users]
path = /srv/home/%D/
read only = No
* Creare il percorso di base delle home, in questo caso e` ''/srv/home/NOME_DOMINIO'', quindi diciamo ''/srv/home/AD''.
* Ricaricare samba con il comando
smbcontrol all reload-config
* Configurare i permessi minimi per permettere agli amminstratori di gestire lo share da windows. Qui uso "domain admins" ma se avete dato il permesso ''SeDiskOperatorPrivilege'' a qualcun altro potete usare questo qualcun altro:
mkdir /srv/home/AD
chown root:"ad\domain admins" /srv/home/AD
chmod 0770 /srv/home/AD
* Attenzione: i permessi di tutto l'albero di directory precedente devono contenere rx per tutti, ovvero "other" deve avere "rx" se (come è logico) il path precedente è di "root.root". Se i permessi dell'albero precedente non permettono "rx" a tutti, probabilmente succede che i vari gruppi e account speciali di Samba (di Windows, a dire il vero) non hanno accesso, e nemmeno il gruppo "domain users" ce l'ha. Il risultato è che riceverete errori mentre cercate di impostare i permessi da windows, e che gli utenti non accedereanno alle loro home. L'errore che ho ricevuto io è questo:
Il criterio di controllo corrente per il computer specificato non ha attivato il controllo.
Se il criterio di protezione dei computer proviene dal dominio, chiedere a un amministratore di dominio di attivare l' Editor criteri di gruppo.
In caso contrario, utilizzare l' Editor criteri del computer locale per configurare i criteri di controllo del computer localmente.
**Io spero che ci sia una giustizia divina per chi scrive simili messaggi di errore**
===== Configurazione dei permessi da Windows =====
Da un client windows, modificare i permessi dello share home appena creato.
* Eseguire "Gestione Computer"
* Connettersi a un altro computer, e selezionare il server samba
* Espandere "Utilità di sistema" / "Cartelle condivise"
* Andare alle proprieta` del nuovo share "users" (basta farci doppio click sopra)
* **Solo per vecchie versioni di Samba:** Cliccare sul tab "Autorizzazioni condivisione" e modificare le autorizzazzioni come segue:
* Aggiungere "domain users" con autorizzazione modifica e lettura
* Aggiungere "domain admins" con autorizzazione "controllo completo", "modifica", "lettura"
* Togliere "everyone"
* Cliccare sul tab "sicurezza"
* Cliccare "avanzate" e poi "cambia autorizzazioni"
* Se siete in windows 7, togliere il check da "Includi autorizzazioni ereditabili ..."
* Se siete in windows 10, cliccate il bottone "Disabilita ereditarietà"
* Rimanendo dentro alle impostazioni avanzate, modificare i permessi in modo da ottenere questa impostazione:
* Domain Admins: controllo completo / "la cartella selezionata, le sottocartelle e i files"
* CREATOR OWNER: controllo completo / "solo sottocartelle e files" (questo c'era gia` e lo lasciamo)
* Domain users: Lettura ed esecuzione / "solo la cartella selezionata"
* Nota: la colonna "ereditato da" deve contenere "NESSUNA" in tutte le righe.
===== Configurazione degli utenti =====
Di default gli utenti non hanno una home definita, ne` un mapping della stessa.
Il mapping puo` essere definito da Linux usando pdbedit, o da Windows usando il gestore utenti. Se lo si fa da Windows, e` possibile farlo anche selezionando utenti multipli, il che rende molto piu` veloce l'operazione. Facendo il mapping da Windows, vengono anche generate automaticamente le directory dei singoli utenti sotto a ''/home/MBUTI''.
* Aprire "Utenti e computer di Active Directory"
* Selezionare uno o piu` utenti
* Cliccare destro, e scegliere "proprieta`"
* Selezionare il tab "profilo"
* Selezionare il box "Home directory", poi "Connetti", e selezionare un disco che vogliamo mappare come home
* Inserire il percorso SMB della home, nella forma ''\\server\users\%USERNAME%'', quindi nel nostro caso per esempio e` ''\\samba4\users\%USERNAME%''. Usando la variabile %USERNAME% mi risparmio di indicare il nome utente di ogni utente singolarmente.
A questo punto puo` essere che, se vi sono alcune home gia` create, Windows vi segnali un errore perche` non puo` crearla. Questo non e` un problema.
===== Test =====
* Ogni utente dovrebbe mappare automaticamente la sua home al login
* Andando a mano sullo share "\\server\home" si dovrebbero vedere le home di tutti gli utenti.
* Come Administrator, posso entrare nella home di chiunque
* Come utente normale, non posso accedere alle home degli altri
* (opzionale) entrando in ssh sulla macchina con uno username di Samba, posso accedere alla mia home correttamente.