In questo articolo esploreremo l'importanza di utenti Linux adeguatamente organizzati. Descriveremo i diritti di accesso, iniziando con come creare e configurare gli utenti e terminando con come concedere l'accesso a file e cartelle specifici. Discuteremo anche di alcuni importanti strumenti di sicurezza, come sudo e SELinux, che aiutano a proteggere il sistema da attività indesiderate.
L'importanza della gestione degli utenti e dei diritti di accesso in Linux
Nel mondo Linux, la gestione degli utenti e i diritti di accesso giocano un ruolo fondamentale. Immaginate Linux come un grande appartamento in cui ogni utente è un inquilino e ogni file è una stanza. La gestione degli utenti è come assegnare a ciascun inquilino una chiave univoca, mentre i diritti di accesso definiscono ciò che può fare nella sua stanza.
Quando viene creato un utente, gli vengono assegnati un nome e un identificativo univoco ( UID ), come una chiave personale per l'appartamento. L'utente appartiene anche a un gruppo , che lo unisce agli altri inquilini. Il gruppo è come un club in cui i membri condividono privilegi comuni.
I diritti di accesso ai file sono suddivisi in tre categorie: proprietario ( utente ), gruppo e altri . Ogni chiave (utente) può avere diritti specifici di lettura, scrittura ed esecuzione per ciascuna categoria. Ad esempio, il proprietario del file può avere diritti di lettura e scrittura, il gruppo solo di lettura e gli altri nessun diritto.
Particolare attenzione meritano le politiche di sicurezza come sudo e SELinux , utilizzate nei sistemi Linux. Sudo è un comando speciale che consente agli utenti normali di utilizzare temporaneamente i diritti di superutente (root) per eseguire attività specifiche normalmente riservate agli amministratori. Questo aiuta a prevenire errori accidentali o abusi dei diritti di superutente. Quando si utilizza sudo , all'utente viene solitamente richiesto di inserire la propria password per confermare l'identità. Dopodiché, può eseguire comandi con i diritti di superutente (root) in conformità con le regole definite nel file sudoers.
SELinux è un ulteriore livello di sicurezza per il sistema operativo Linux. Monitora quali programmi e file possono essere utilizzati nel sistema e ne limita l'accesso per prevenire intrusioni e attacchi. Ciò rende il server più sicuro, impedendo tentativi di hacking o azioni dannose.
Creazione e gestione degli utenti
Come creare un utente in Linux
Gli utenti Linux vengono solitamente creati con il comando useradd . Ad esempio, per creare un utente di nome "username", si digita:
useradd username
Come impostare una password utente Linux
Dopo la creazione di un utente, il suo account non è protetto da password. Per impostare una password per un nuovo utente, utilizzare il comando passwd :
passwd username
Dove username è il nome dell'utente per il quale viene impostata la password.
Come visualizzare un elenco di utenti in Linux
Per visualizzare un elenco di utenti in Linux con un singolo comando nel terminale, è possibile utilizzare il comando cut :
cut -d: -f1 /etc/passwd
Questo comando legge il contenuto del file /etc/passwd , che contiene informazioni su tutti gli utenti.
Per ottenere informazioni su un utente specifico, puoi utilizzare il comando:
id username
Verranno visualizzati l' UID , il GID e i gruppi dell'utente.
Eliminazione di un utente Linux
Per eliminare un utente, utilizzare il comando userdel :
userdel username
Tuttavia, questo comando non elimina i file nella directory home dell'utente. Per rimuoverli, è possibile utilizzare l' opzione -r :
userdel -r username
Questa operazione eliminerà il nome utente dell'utente, insieme alla sua directory home e a tutti i file in essa contenuti.
Modifica di un utente Linux
Per modificare le informazioni relative a un utente, utilizzare il comando usermod . Lo strumento utilizza la seguente sintassi:
usermod argument user
Un elenco completo dei possibili argomenti è visualizzato nella guida dell'utilità:
Ad esempio, per modificare la directory home di un utente, è possibile utilizzare il comando:
usermod -d /new/path/to/directory username
Creazione e gestione di gruppi di utenti in Linux
I gruppi di utenti in Linux consentono agli amministratori di raggruppare gli utenti con diritti di accesso simili. Ciò facilita la gestione dei diritti di accesso e migliora la sicurezza del sistema consentendo di impostare i diritti a livello di gruppo, anziché farlo per ogni utente individualmente. Come esempio, considereremo il gruppo sviluppatori con l'utente admin.
Come creare un gruppo di utenti in Linux
Per creare un nuovo gruppo, utilizzare il comando groupadd seguito dal nome del nuovo gruppo:
sudo groupadd group_name
Nel nostro esempio, il comando apparirebbe così:
sudo groupadd developers
Come eliminare un gruppo di utenti in Linux
Per eliminare un gruppo, utilizzare il comando groupdel :
sudo groupdel group_name
Quindi il comando:
sudo groupdel developers
Eliminerò il gruppo denominato developers.
Aggiunta di utenti a un gruppo
Per aggiungere un utente a un gruppo specifico, utilizzare il comando usermod :
sudo usermod -aG group_name user_name
Per esempio:
sudo usermod -aG developers admin
Questo comando aggiungerà l'utente denominato admin al gruppo degli sviluppatori.
Rimozione di utenti da un gruppo
Per rimuovere un utente da un gruppo, utilizzare il comando deluser :
sudo deluser user_name group_name
Il comando per rimuovere l'utente admin dal gruppo degli sviluppatori :
sudo deluser admin developers
Visualizzazione degli elenchi di gruppi in Linux
Per visualizzare un elenco di tutti i gruppi presenti nel sistema, utilizzare il comando cat con il file /etc/group :
cat /etc/group
Questo comando visualizzerà un elenco di tutti i gruppi presenti nel sistema.
Controllo dell'appartenenza al gruppo di utenti
Dopo aver eseguito le azioni, puoi verificare a quali gruppi appartiene un utente utilizzando il comando groups:
groups user_name
Abbiamo quindi esplorato le basi della gestione dei gruppi di utenti in Linux. Ora passiamo alla fase successiva: esaminare l'assegnazione dei diritti di accesso a file e directory. Questo processo consente di determinare quali azioni gli utenti o i gruppi possono eseguire in merito a file e directory specifici, garantendo un'efficace gestione della sicurezza e l'accesso alle risorse di sistema.
Assegnazione dei diritti di accesso a file e directory
Rappresentazione simbolica dei diritti di accesso
Come abbiamo già visto, in Linux esistono 3 categorie di utenti: proprietario ( utente ), gruppo e altri . Ognuna di esse può possedere determinati permessi di accesso a file o directory:
- Leggi (Read - r): consente di visualizzare il contenuto di un file o di una directory.
- Write (Write - w): Fornisce la possibilità di modificare un file o di crearne uno nuovo all'interno della directory. Per una directory, consente anche di eliminare file da essa.
- Esegui (Esegui - x): consente di eseguire il file (se è un file eseguibile) o di accedere alla directory (se è una directory).
Nei sistemi della famiglia Linux, i diritti di accesso sono rappresentati da una stringa di 10 caratteri. Il primo carattere indica il tipo di file (file normale, directory, ecc.), e i restanti nove sono tre gruppi di tre caratteri per ciascuno dei gruppi di utenti. Per capire, consideriamo un esempio.
I diritti di accesso -rwxr-xr-- significano:
- Il primo carattere (-) indica il tipo di file (in questo caso, un file normale).
- Tre caratteri per il proprietario (rwx) indicano che il proprietario ha diritti di lettura, scrittura ed esecuzione.
- Tre caratteri per il gruppo (rx) indicano che i membri del gruppo hanno solo diritti di lettura ed esecuzione.
- Tre caratteri per gli altri (r--) indicano che gli altri utenti possono solo leggere il file.
I permessi di accesso vengono impostati tramite il comando chmod , la cui sintassi è la seguente:
chmod [options] mode file(s)
Dove:
- [opzioni] - parametri aggiuntivi, come -R per modificare ricorsivamente i diritti di accesso in una directory e nelle sue sottodirectory.
- mode - una stringa speciale che specifica quali diritti di accesso vengono modificati e per chi. La modalità può essere specificata da simboli (r, w, x) e bit (0 o 1). Possono essere utilizzati anche valori numerici di mode (ne parleremo più avanti)
- file(s) - file o directory a cui vengono applicate le modifiche.
Questa utility è uno strumento piuttosto potente, quindi esamineremo solo alcuni comandi di base a titolo di esempio.
Modifica i diritti di accesso a un file in modo che il proprietario abbia diritti di lettura e scrittura, il gruppo abbia solo diritti di lettura e gli altri utenti non abbiano diritti:
chmod u=rw,g=r,o= filename
Imposta i diritti di accesso per tutti gli utenti per leggere e scrivere su un file:
chmod a+rw filename
Modificare ricorsivamente i diritti di accesso per tutti i file e le sottodirectory in una directory:
chmod -R u+rwx directory
Rappresentazione numerica dei diritti di accesso
Nella rappresentazione numerica, ogni categoria utente (proprietario, gruppo, altri) ha il suo numero, e la combinazione di questi numeri imposta i diritti di accesso finali. Similmente al simbolico, ognuno dei tre diritti ha il suo valore, ma in numerico:
- Leggi (read) - valore 4
- Scrivi (write) - valore 2
- Eseguire (eseguire) - valore 1
I valori numerici vengono utilizzati anche per determinare il tipo di utente:
- Proprietario del file (utente) - la prima cifra
- Gruppo del proprietario (gruppo) - la seconda cifra
- Altri utenti (altri) - la terza cifra
Pertanto, la rappresentazione numerica completa dei diritti di accesso ai file è composta da tre cifre, ciascuna delle quali rappresenta la somma dei valori dei diritti per una determinata categoria di utenti. Ciò è in un certo senso più comodo rispetto all'utilizzo di 10 caratteri nella rappresentazione simbolica. La gestione in questo caso apparirebbe come segue:
chmod XYZ file
dove X , Y e Z sono numeri che rappresentano rispettivamente i diritti di accesso per il proprietario, il gruppo e gli altri utenti.
Ad esempio, per concedere al proprietario diritti di accesso completi (lettura, scrittura ed esecuzione) e al gruppo e agli altri utenti solo diritti di lettura ed esecuzione, è possibile utilizzare il comando:
chmod 755 file
Consideriamo altri esempi:
chmod 700 file
Solo il proprietario ha diritti di lettura, scrittura ed esecuzione, mentre il gruppo e gli altri utenti non hanno diritti di accesso.
chmod 644 file
Il proprietario ha diritti di lettura e scrittura, mentre il gruppo e gli altri utenti hanno solo diritti di lettura.
chmod 751 file
Il proprietario ha pieni diritti, il gruppo ha diritti di lettura ed esecuzione e gli altri utenti hanno solo diritti di esecuzione.
Come abbiamo detto prima, lo strumento ha funzionalità molto estese. In alcuni casi, le opzioni disponibili nella sezione "help" non sono sufficienti:
Presta attenzione all'ultima riga. L'utilizzo di questo comando apre una documentazione più dettagliata sullo strumento. Puoi anche visitare la pagina ufficiale di Wikipedia dedicata all'utility , dove troverai informazioni dettagliate su Chmod.
Conclusione
Gli utenti Linux e la loro gestione sono di fondamentale importanza per la sicurezza e il funzionamento stabile del sistema operativo. In questo articolo, abbiamo evidenziato l'importanza di una gestione efficace degli utenti e dei diritti di accesso in Linux, coprendo la creazione e la gestione degli utenti, il lavoro con i gruppi di utenti e l'assegnazione dei diritti di accesso a file e directory.