Da Windows a Linux. Diaro (pratico) di una migrazione. 2

Arrivati a questo punto (vedi articolo precedente) possiamo cominciare a creare utenti e gruppi. Ragionando in termini Microsoft, possiamo preparare questo programma:

  • creare utenti
  • creare gruppi
  • creare folders e condivisioni
  • assegnare diritti di accesso alle condivisioni

Semplice no? Le cose non vanno molto diversamente da così, una volta che teniamo presenti alcune peculiarità di Linux, Samba ed Ubuntu.

Creare utenti.

Da una lista di utenti possiamo facilmente passare ad utenti installati nel sistema. Il comando è adduser.

adduser --disabled-password –-home /share/username –-force-badname  --gecos "" username

Per fare ordine, tutte le nostre condivisioni saranno poste all’interno di una cartella /share. Questa cartella, come indica lo “/” iniziale, viene posizionata in root.

Supponiamo di voler usare la convenzione per cui ad ogni utente associamo un nome utente costituito dall’iniziale del nome.cognome, e desideriamo che ogni utente abbia una propria cartella all’interno di /shares. Insomma vogliamo che Mario Rossi abbia come nome utente M.Rossi, e come cartella utente una cartella posta in /shares/M.Rossi.

Uno script che realizza l’inserimento degli utenti ha quindi questo aspetto:

sudo adduser --disabled-password --home /shares/m-rossi --force-badname --gecos "" m.rossi
sudo adduser --disabled-password --home /shares/g.verdi  --force-badname --gecos "" g.verdi
sudo adduser --disabled-password --home /shares/m.bianchi --force-badname --gecos "" m.bianchi

L’opzione –disabled-password ci consente di inserire successivamente le password iniziali. –home stabilisce dove posizionare l’home folder.

–force-bad-name ci consente di inserire usernames del tipo N.Cognome, che altrimenti a linux non piacciono.

–gecos si riferisce a campi contenenti Nome, Cognome, e altre amenità come stanza, telefono etc. Chi è interesato a inserire questi campi troverà facilmente la documentazione. Il termine gecos ha un certo valore archeologico, facendo riferimento ai tempi dei sistemi 360. Chi vuole divertirsi a leggerne la storia segua questo link.

Supponiamo che il nostro script si chiami myadd.sh eseguiremo

bash myadd.sh

Rimuovere utenti e inserire le password utente.

Per rimuovere un utente:

userdel  <username>

Per inserire le password dei singoli utenti, dato il numero ridotto, possiamo usare

passwd <username>

E’ interattivo. Altrimenti esistono strumenti che consentono di leggere password da stdin, ma qui, considerati i pochi utenti, non ne vale la pena.

Creare gruppi.

Anche i gruppi, come gli utenti possono essere creati da script o interattivamente. Se preferiamo quest’ultima opzione, installiamo gnome-system-tools (apt-get install gnome-system-tools) per creare e gestire gruppi da interfacccia grafica.

Creiamo le directory di rete e condividiamole.

Innanzi tutto avremo bisogno di installare Samba, il package che usa il protocollo smb per condividere directory con client Microsoft.

sudo apt-get install samba samba-common
sudo apt-get install system-config-samba

Per la configurazione di Samba la cosa più semplice è aprire il file di configurazione che si trova in /etc/samba/smb.conf e modificarlo. Questo per varie ragioni:
innanzi tutto si ottiene la massima versatilità e configurabilità; poi perché qualunque sia il tool grafico che usiamo, alla fine uno sguardo al file di configurazione glielo andremmo comunque a dare per sicurezza. E poi perché, con uno sforzo iniziale minimo per capire le opzioni, è più facile da usare e gestire.

Prima di arrivare alla configurazione del file ci sono un paio di concetti che vale la pena definire; spero che le mie deduzioni siano corrette, chi desidera perfezionarle ed ha voglia di mandarmi una mail ha i miei ringraziamenti fin da ora.
Samba usa il proprio sistema di utenti e gruppi; questi utenti vanno abilitati ad accedere le risorse nel file smb.conf.

I diritti di accesso sono trattati a due livelli, condivisione e file system, come accade con Windows. La differenza più macroscopica è che una cartella Windows può essere acceduta da gruppi diversi con modalità diverse, (RO, RW, etc.) mentre questo non sembra vero per Linux,a meno che non si installino dei package che gestiscono access list. Linux consente di assegnare ad un gruppo i diritti di accesso ad una cartella, e specificarne le modalità (read, write, etc.), ma non a più gruppi. Un punto a favore di Microsoft.

Distinguiamo diritti di accessso al file system da diritti di accesso alla condivisione. Mentre i diritti di accesso alla condivisione sono gestiti da Samba, quelli di file system sono gestiti da Linux. Linux gestisce i diritti ditinguendo tra utente, gruppo, tutti. Utente è il singolo utente titolare di una risorsa; gruppo è il gruppo cui l’utente appartiene. Tutti è tutto il resto del mondo.
Indichiamo con rwx i diritti di r read,w write, x execute. Questi diritti vanno specificati per utente, gruppo, tutti.I diritti di un file test.txt possono ad esempio essere:

rwx r– r–

questo significa che il proprietario del file può leggere (r), scrivere(w) ed eseguire(x) il file, il gruppo cui appartiene può leggerlo, ed anche il resto del mondo. Chi desidera conoscere di più della gestione dei diritti di accesso può visitare questo link .
I diritti di accesso possono essere anche rappresentati con dei bit: ad esempio
rwx rw r
si può rappresentare con
111 110 100
cui corrisponde in decimale 7 6 2.

Nel consentire l’accesso alle cartelle da condividere, dovremo stabilire chi può accedere e come. La soluzione più semplice è quella di dare accesso rwxrwxrwx a tutte le risorse, ma i rischi che ne risultano la rendono impraticabile.
Protremo ipotizzare un accesso rwxrw-r–; in questo caso il mondo può accedere e leggere, il proprietario ed il gruppo possono scrivere.

I comandi essenziali per gestire proprietari e diritti sono:

chown  utente:gruppo file1 file2 ...
chmod modo file1 file2 ...

esempi:

chown M.Rossi:amministrazione /shares/fatturato
chmod 770 M.Rossi:amministrazione

Assegna la cartella fatturato a M.Rossi ed al gruppo amministrazione, con diritti pieni a proprietario (M.Rossi) e gruppo, nessun accesso al resto del mondo.

Una volta fatto questo dovremo semplicemente configurare le cartelle in smb.conf per renderle accessibili via Samba. Tutto semplice, se non fosse che, in questo modo, gli utenti non riusciranno ad accedere a nessun nuovo file, e tutti quelli creati da M.Rossi saranno, di default readonly per il resto del gruppo, che non è esattamente il risultato sperato. Per risolvere questo problema bisogna ancora modificare qualcosa. Alla prossima.

admin
Author: admin

bio

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. Usiamo i cookies per ragioni tecniche. Teniamo in alta considerazione la tua privacy.

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi