Guida ai comandi da terminale - Gestione utenti e gruppi: differenze tra le versioni
S3v (discussione | contributi) (aggiunta/rimozione utente da gruppo) |
mNessun oggetto della modifica |
||
(13 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Comandi da terminale}} | {{Comandi da terminale}} | ||
== Definizione di root e differenze con il normale utente == | == Definizione di root e differenze con il normale utente == | ||
Cos’è | Cos’è [[root]]?<br> | ||
Nei sistemi operativi di tipo Unix si indica con root l’utente dotato di massimi privilegi, cioè | Nei sistemi operativi di tipo Unix si indica tradizionalmente con '''root''' l’utente dotato di massimi privilegi, cioè l’[[privilegi di amministrazione|amministratore di sistema]], detto anche super utente o superuser. | ||
L’utente root può fare tutto ciò che | L’utente '''root''', essendo l'unico in GNU/Linux Debian con [[UID]] ('''''U'''ser '''ID''''') uguale a '''0''', può fare tutto ciò che desidera sul sistema: questo può essere sia un vantaggio sia uno svantaggio nello stesso momento. Viene infatti universalmente ritenuto pericoloso compiere le normali sessioni di lavoro in qualità di root: agire come utente normale e come utente root solo per amministrazione del sistema permette di minimizzare il rischio di effettuare operazioni pericolose come cancellare file essenziali per il sistema operativo. | ||
[[Root]] secondo le impostazioni di default è abilitato nel sistema, ma se non lo fosse l'unico modo per ottenere i [[privilegi di amministrazione]] sarebbe tramite [[sudo]].<br/> | |||
== Accesso come root == | == Accesso come root == | ||
Con le impostazioni di default, per poter accedere come utente '''root''' nel sistema, ed avere quindi la possibilità di svolgere ogni operazione, basterà digitare da terminale: | |||
<pre> | <pre> | ||
su - | su - | ||
Riga 23: | Riga 24: | ||
</pre> | </pre> | ||
''(che identifica l'utente root)'' | ''(che identifica l'utente root)'' | ||
D'ora in poi il prompt sarà riportato prima dei comandi per indicare se sono eseguiti con [[privilegi di amministrazione]]. | |||
Si tenga presente che alcune shell meno diffuse su GNU/Linux, come zsh, possono utilizzare il simbolo '''%''' al posto di '''$''' per indicare un utente senza privilegi. È in genere una convenzione adottata dalle shell utilizzate di default nei sistemi Unix BSD e derivati. | |||
== Disconnessione da root == | == Disconnessione da root == | ||
Riga 30: | Riga 35: | ||
exit | exit | ||
</pre> | </pre> | ||
Il comando exit può servire anche per chiudere la finestra del terminale. | Il comando exit può servire anche per chiudere la finestra del terminale. È possibile anche premere <code>Ctrl-d</code>. | ||
== Creazione di un nuovo utente == | == Creazione di un nuovo utente == | ||
Per creare un nuovo utente da terminale, è sufficiente diventare root, e digitare il comando: | Per creare un nuovo utente da terminale, è sufficiente diventare root, e digitare il comando: | ||
<pre> | <pre> | ||
adduser nomeutente | # adduser nomeutente | ||
</pre> | </pre> | ||
Al posto di “nomeutente”, naturalmente, va scritto il nome dell’utente che volete creare. Saranno richieste la password che si vuole assegnare all’utente, e in più altre piccole informazioni facoltative , come Nome Completo, Stanza N° (?!), Numeri telefonici. | Al posto di “nomeutente”, naturalmente, va scritto il nome dell’utente che volete creare. Saranno richieste la password che si vuole assegnare all’utente, e in più altre piccole informazioni facoltative , come Nome Completo, Stanza N° (?!), Numeri telefonici. | ||
== Disabilitare l'account di un utente == | |||
Per disabilitare l'account di un utente, impedendone l'acceso, è sufficiente farne scadere la validità con: | |||
<pre> | |||
# usermod --lock --expiredate 1 nomeutente | |||
</pre> | |||
Dove “nomeutente” deve essere sostituito con il nome dell’utente che si vuole bloccare. Si noti che il valore <code>1</code> è necessario, o in alternativa una data precedente a quella attuale in formato <code>AAAA-MM-GG</code>. | |||
Utilizzare <code>--lock</code> senza <code>--expiredate</code> bloccherebbe soltanto la password, ma potrebbe permettere l'accesso, se sono predisposti altri metodi (per esempio via chiavi con [[SSH]] o via token con [[PAM USB]]). | |||
== Riattivare un account disabilitato == | |||
Per riattivare l'account di un utente, precedentemente disabilitato, basta non usare nessun argomento con l'opzione <code>expiredate</code>: | |||
<pre> | |||
# usermod --unlock --expiredate "" nomeutente | |||
</pre> | |||
Dove “nomeutente” è il nome dell’utente che era stato bloccato. Al posto di <code>""</code>, per riabilitare l'account, si può anche inserire in formato <code>AAAA-MM-GG</code> una nuova data di scadenza per l'account. | |||
== Cancellazione di un utente == | == Cancellazione di un utente == | ||
Per cancellare un utente registrato nel sistema, aperto il terminale e fatto accesso come utenti root, si digiti: | Per cancellare un utente registrato nel sistema, aperto il terminale e fatto accesso come utenti root, si digiti: | ||
<pre> | <pre> | ||
# deluser nomeutente | |||
</pre> | </pre> | ||
Dove “nomeutente” deve essere sostituito con il nome dell’utente che si vuole cancellare. Non sono richiesti altri comandi o informazioni e l’operazione avverrà in meno di un secondo. | Dove “nomeutente” deve essere sostituito con il nome dell’utente che si vuole cancellare. Non sono richiesti altri comandi o informazioni e l’operazione avverrà in meno di un secondo. | ||
Riga 49: | Riga 70: | ||
Per la modifica da terminale della password di un utente si utilizza il comando <code>passwd</code>. Facciamo login come utente root e diamo il comando: | Per la modifica da terminale della password di un utente si utilizza il comando <code>passwd</code>. Facciamo login come utente root e diamo il comando: | ||
<pre> | <pre> | ||
passwd nomeutente | # passwd nomeutente | ||
</pre> | </pre> | ||
mettendo il nome dell’utente a cui vogliamo settare la password al posto di “nomeutente”. Con questo metodo è possibile cambiare non solo le password degli utenti, ma anche quella di root. | mettendo il nome dell’utente a cui vogliamo settare la password al posto di “nomeutente”. Con questo metodo è possibile cambiare non solo le password degli utenti, ma anche quella di root. | ||
Riga 59: | Riga 80: | ||
== Gruppi a cui appartiene un utente == | == Gruppi a cui appartiene un utente == | ||
Per visualizzare i gruppi a cui appartiene un utente: | Per visualizzare i gruppi a cui appartiene un utente: | ||
<pre>groups</pre> | <pre>$ groups</pre> | ||
questo mostra i gruppi a cui appartiene l'utente che esegue il comando.<br/> | questo mostra i gruppi a cui appartiene l'utente che esegue il comando.<br/> | ||
Per visualizzare i gruppi a cui appartiene un altro utente | Per visualizzare i gruppi a cui appartiene un altro utente: | ||
<pre> | <pre>$ groups nomeutente</pre> | ||
con cui verranno visualizzati i gruppi a cui appartiene "nomeutente". | con cui verranno visualizzati i gruppi a cui appartiene "nomeutente". | ||
Riga 75: | Riga 96: | ||
<pre># deluser nomeutente nomegruppo</pre> | <pre># deluser nomeutente nomegruppo</pre> | ||
In entrambi i casi i comandi richiedono i permessi di "root" e sarà necessario eseguire un logout/login per rendere effettivi i cambiamenti. | In entrambi i casi i comandi richiedono i permessi di "root" e sarà necessario eseguire un logout/login per rendere effettivi i cambiamenti. | ||
== Cercare i file che appartengono ad un utente/gruppo == | |||
Questa ricerca, attraverso il comando ''find'', si può eseguire facilmente utilizzando le opzioni "-group" o "-user".<br/> | |||
* '''Gruppo'''<br/>Per avviare una ricerca che parta dalla directory radice:<pre>$ find / -group nomegruppo</pre>Ad esempio con:<pre>$ find / -group bin</pre>si cercheranno, a partire dalla directory radice, tutti i file appartenenti al gruppo "bin". | |||
*'''Utente'''<br/>Assolutamente identiche le modalità per un ricerca in base all'utente. Ad esempio, per una ricerca che parta dalla directory corrente e visualizzi tutti i file/directory appartenenti all'utente [[root]]:<pre>$ find . -user root</pre> | |||
Si noti che i comandi potrebbero necessitare di essere eseguiti con i permessi di ''root'' affinché la ricerca sia estesa anche a quelle directory normalmente non accessibili ad un normale utente. | |||
[[Categoria:Shell]][[Categoria:Programmi da terminale]] | [[Categoria:Shell]][[Categoria:Programmi da terminale]] |
Versione delle 09:51, 14 nov 2015
Guida ai comandi da terminale |
Sommario |
Definizione di root e differenze con il normale utente
Cos’è root?
Nei sistemi operativi di tipo Unix si indica tradizionalmente con root l’utente dotato di massimi privilegi, cioè l’amministratore di sistema, detto anche super utente o superuser.
L’utente root, essendo l'unico in GNU/Linux Debian con UID (User ID) uguale a 0, può fare tutto ciò che desidera sul sistema: questo può essere sia un vantaggio sia uno svantaggio nello stesso momento. Viene infatti universalmente ritenuto pericoloso compiere le normali sessioni di lavoro in qualità di root: agire come utente normale e come utente root solo per amministrazione del sistema permette di minimizzare il rischio di effettuare operazioni pericolose come cancellare file essenziali per il sistema operativo.
Root secondo le impostazioni di default è abilitato nel sistema, ma se non lo fosse l'unico modo per ottenere i privilegi di amministrazione sarebbe tramite sudo.
Accesso come root
Con le impostazioni di default, per poter accedere come utente root nel sistema, ed avere quindi la possibilità di svolgere ogni operazione, basterà digitare da terminale:
su -
Verrà richiesta la password di root e sarà eseguito l’accesso.
Noterete che il prompt del terminale è cambiato, passando da:
$
(che identifica un utente normale)
a:
#
(che identifica l'utente root)
D'ora in poi il prompt sarà riportato prima dei comandi per indicare se sono eseguiti con privilegi di amministrazione.
Si tenga presente che alcune shell meno diffuse su GNU/Linux, come zsh, possono utilizzare il simbolo % al posto di $ per indicare un utente senza privilegi. È in genere una convenzione adottata dalle shell utilizzate di default nei sistemi Unix BSD e derivati.
Disconnessione da root
(per tornare utente con permessi normali sulla stessa finestra di terminale)
Se siete diventati root in una finestra di terminale, e volete tornare user senza chiudere la finestra o aprirne un’altra, basterà digitare:
exit
Il comando exit può servire anche per chiudere la finestra del terminale. È possibile anche premere Ctrl-d
.
Creazione di un nuovo utente
Per creare un nuovo utente da terminale, è sufficiente diventare root, e digitare il comando:
# adduser nomeutente
Al posto di “nomeutente”, naturalmente, va scritto il nome dell’utente che volete creare. Saranno richieste la password che si vuole assegnare all’utente, e in più altre piccole informazioni facoltative , come Nome Completo, Stanza N° (?!), Numeri telefonici.
Disabilitare l'account di un utente
Per disabilitare l'account di un utente, impedendone l'acceso, è sufficiente farne scadere la validità con:
# usermod --lock --expiredate 1 nomeutente
Dove “nomeutente” deve essere sostituito con il nome dell’utente che si vuole bloccare. Si noti che il valore 1
è necessario, o in alternativa una data precedente a quella attuale in formato AAAA-MM-GG
.
Utilizzare --lock
senza --expiredate
bloccherebbe soltanto la password, ma potrebbe permettere l'accesso, se sono predisposti altri metodi (per esempio via chiavi con SSH o via token con PAM USB).
Riattivare un account disabilitato
Per riattivare l'account di un utente, precedentemente disabilitato, basta non usare nessun argomento con l'opzione expiredate
:
# usermod --unlock --expiredate "" nomeutente
Dove “nomeutente” è il nome dell’utente che era stato bloccato. Al posto di ""
, per riabilitare l'account, si può anche inserire in formato AAAA-MM-GG
una nuova data di scadenza per l'account.
Cancellazione di un utente
Per cancellare un utente registrato nel sistema, aperto il terminale e fatto accesso come utenti root, si digiti:
# deluser nomeutente
Dove “nomeutente” deve essere sostituito con il nome dell’utente che si vuole cancellare. Non sono richiesti altri comandi o informazioni e l’operazione avverrà in meno di un secondo.
Modifica della password di un utente
Per la modifica da terminale della password di un utente si utilizza il comando passwd
. Facciamo login come utente root e diamo il comando:
# passwd nomeutente
mettendo il nome dell’utente a cui vogliamo settare la password al posto di “nomeutente”. Con questo metodo è possibile cambiare non solo le password degli utenti, ma anche quella di root.
Gruppi di sistema
La lista di tutti i gruppi di sistema si può ricavare dal file /etc/group
:
$ cat /etc/group
Gruppi a cui appartiene un utente
Per visualizzare i gruppi a cui appartiene un utente:
$ groups
questo mostra i gruppi a cui appartiene l'utente che esegue il comando.
Per visualizzare i gruppi a cui appartiene un altro utente:
$ groups nomeutente
con cui verranno visualizzati i gruppi a cui appartiene "nomeutente".
Aggiungere o rimuovere un utente da un gruppo
Per aggiungere un utente ad un gruppo:
# adduser nomeutente nomegruppo
Ad esempio il comando:
# adduser pippo floppy
aggiungerà l'utente "pippo" al gruppo "floppy".
Analogamente al comando precedente, per rimuovere un utente da un gruppo:
# deluser nomeutente nomegruppo
In entrambi i casi i comandi richiedono i permessi di "root" e sarà necessario eseguire un logout/login per rendere effettivi i cambiamenti.
Cercare i file che appartengono ad un utente/gruppo
Questa ricerca, attraverso il comando find, si può eseguire facilmente utilizzando le opzioni "-group" o "-user".
- Gruppo
Per avviare una ricerca che parta dalla directory radice:$ find / -group nomegruppo
Ad esempio con:$ find / -group bin
si cercheranno, a partire dalla directory radice, tutti i file appartenenti al gruppo "bin". - Utente
Assolutamente identiche le modalità per un ricerca in base all'utente. Ad esempio, per una ricerca che parta dalla directory corrente e visualizzi tutti i file/directory appartenenti all'utente root:$ find . -user root
Si noti che i comandi potrebbero necessitare di essere eseguiti con i permessi di root affinché la ricerca sia estesa anche a quelle directory normalmente non accessibili ad un normale utente.