Gestione degli utenti in Linux
Attenzione
Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.
Come sappiamo Linux è un sistema multiutente, gli utenti possono essere loggati contemporaneamente sulla stessa macchina o da macchine remote e le sessioni utente possono essere teoricamente infinite. Oggi vediamo qualche comando essenziale per la gestione degli utenti in Linux, comandi che restano invariati da anni, mentre le GUI cambiano in continuazione facendoci spesso perdere tempo.
Tutti i seguenti comandi hanno a che fare con il monitoraggio degli utenti.
Who
Who ci dice quanti e quali utenti sono connessi al sistema (e da quale computer):
joe@joe-NF61S-M2A:~$ who joe tty1 2013-02-16 16:57 vale pts/1 2013-02-26 10:14 (:2) vale tty7 2013-02-24 18:11
W
W visualizza gli utenti loggati e i programmi in esecuzione:
joe@joe-NF61S-M2A:~$ w 10:16:56 up 9 days, 17:20, 3 users, load average: 1,00, 2,15, 2,44 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT joe tty1 16Feb13 14:59m 0.62s 0.60s -bash vale pts/1 :2 10:14 0.00s 0.66s 0.62s gnome-terminal vale tty7 Sun18 9days 1:03m 1.15s gnome-session -
Whoami
Whoami restituisce il nome utente che ha lanciato whoami:
joe@joe-NF61S-M2A:~$ whoami joe
Last
Last mostra gli utenti che si sono connessi in passato:
joe@joe-NF61S-M2A:~$ last vale pts/1 :2 Tue Feb 26 10:14 still logged in vale pts/1 :2 Mon Feb 25 19:17 - 10:14 (14:56) joe pts/5 :0 Thu Feb 21 11:46 - 18:10 (3+06:23) joe pts/4 :0 Thu Feb 21 11:41 - 18:10 (3+06:28) joe pts/1 :0 Thu Feb 21 11:03 - 18:10 (3+07:06) joe pts/1 :0 Sat Feb 16 16:58 - 18:42 (01:44) joe tty1 Sat Feb 16 16:57 still logged in joe tty1 Sat Feb 16 16:57 - 16:57 (00:00) reboot system boot 3.2.0-37-generic Sat Feb 16 16:57 - 10:18 (9+17:20) joe pts/5 :0 Thu Feb 14 11:09 - crash (2+05:48) reboot system boot 3.2.0-37-lowlate Thu Feb 14 11:08 - 10:18 (11+23:09) joe pts/5 :0 Thu Feb 14 10:38 - 11:06 (00:27) joe pts/3 :0 Thu Feb 14 10:24 - 11:06 (00:41) joe pts/1 :0 Wed Feb 13 10:24 - 11:06 (1+00:42) reboot system boot 3.2.0-37-generic Tue Feb 12 11:46 - 11:07 (1+23:21) reboot system boot 3.2.0-37-generic Tue Feb 12 11:46 - 11:45 (00:00) joe pts/4 :0 Mon Feb 4 15:44 - crash (7+20:01) joe pts/0 :0 Mon Feb 4 15:43 - crash (7+20:02) reboot system boot 3.2.0-37-generic Mon Feb 4 15:43 - 11:45 (7+20:02) joe pts/3 :0 Mon Feb 4 15:06 - 15:34 (00:28) joe pts/0 :0 Sat Feb 2 19:00 - 15:34 (1+20:34) wtmp begins Sat Feb 2 19:00:48 2013
Lastb
Lastb (qualora il file /var/log/btmp
esistesse) mostra gli ultimi tentativi di login falliti:
joe@joe-NF61S-M2A:~$ lastb btmp begins Fri Feb 1 07:40:22 2013
Ovviamente differenziare gli utenti non è un processo fine a se stesso, ogni utente è diverso in termini di diritti, ognuno avrà i suoi file all’interno della directory “/home” sui quali avrà pieno accesso e le gerarchie fra utenti (e gruppi) sono definite dai file /etc/passwd
, /etc/shadow
e /etc/group
.
Per quanto riguarda la gestione pratica degli utenti elenco di seguito una breve lista di comandi utili.
Su
Il comando “su” lanciato senza argomenti permette all’utente che lo lancia di loggarsi come amministratore del sistema (“root”), dopo aver inserito la password di amministratore:
joe@joe-NF61S-M2A:~$ su Password: root@joe-NF61S-M2A:/home/joe#
Lanciando lo stesso comando seguito dall’alias di un utente del sistema, ci permetterà di loggarci con quell’utente mantenendo però anche i diritti dell’utente iniziale. Per esempio se lancio il comando dall’account “joe” loggandomi come “vale” avrò i diritti di “joe” e “vale” contemporaneamente.
joe@joe-NF61S-M2A:~$ su vale Password: vale@joe-NF61S-M2A:/home/joe$
Id
Il comando “id” permette di verificare l’identità dell’utente:
joe@joe-NF61S-M2A:~$ id uid=1000(joe) gid=1000(joe) gruppi=1000(joe),4(adm),24(cdrom),27(sudo),29(audio),30(dip),46(plugdev),109(lpadmin),124(sambashare),1002(jupiter)
Useradd / Adduser
Questi due programmi vanno lanciati dall’amministratore del sistema (utente “root”) e permettono di aggiungere un nuovo utente al sistema.
root@joe-NF61S-M2A:/home/joe# adduser pippo Aggiunta dell'utente «pippo» ... Aggiunta del nuovo gruppo «pippo» (1003) ... Aggiunta del nuovo utente «pippo» (1002) con gruppo «pippo» ... Creazione della directory home «/home/pippo» ... Copia dei file da «/etc/skel» ... Inserire nuova password UNIX: Reinserire la nuova password UNIX: passwd: password aggiornata correttamente Modifica delle informazioni relative all'utente pippo Inserire il nuovo valore o premere INVIO per quello predefinito Nome completo []: Pippo Stanza n° []: 123 Numero telefonico di lavoro []: 131231 Numero telefonico di casa []: 131221 Altro []: Sono pippo! Le informazioni sono corrette? [S/n] s
Passwd
Il comando passwd permette di reimpostare la password all’utente che lo lancia. Se lanciato come amministratore sostituirà la password di root, e se lanciato come amministratore seguito dall’alias di un utente del sistema sostituirà la password di quell’utente.
root@joe-NF61S-M2A:/home/joe# passwd pippo Inserire nuova password UNIX: Reinserire la nuova password UNIX: passwd: password aggiornata correttamente
Chfn
Il comando chfn sostituisce i dati personali di un utente registrati in precedenza:
root@joe-NF61S-M2A:/home/joe# chfn pippo Modifica delle informazioni relative all'utente pippo Inserire il nuovo valore o premere INVIO per quello predefinito Nome completo [Pippo]: Pippot Stanza n° [123]: 321 Numero telefonico di lavoro [131231]: 132131 Numero telefonico di casa [131221]: 122131 Altro [Sono pippo!]: Non sono pippo!
Usermod
Il comando usermod modifica l’account utente, permette di aggiungere un utente a un gruppo, di impostare una home diversa, di far scadere l’account impostando una data, di disabilitare l’account… e altro ancora. Trovate tutte le informazioni su usermod nella sua pagina di manuale (lanciando “man usermod
“).
Userdel
Per eliminare un account utente e relativi file si usa invece userdel. Il comando non restituirà output, quindi di seguito mostro anche parte del file /etc/passwd che continene tutti gli utenti.
root@joe-NF61S-M2A:/home/joe# userdel pippo root@joe-NF61S-M2A:/home/joe# cat /etc/passwd | grep 1000* joe:x:1000:1000:joe,,,:/home/joe:/bin/bash vale:x:1001:1001:Valentina Redaelli,,,:/home/vale:/bin/bash
Come già detto le GUI cambiano e si adeguano di volta in volta al “target” di utenti (per dirla in termini commerciali) e alle loro esigenze. Tutte le GUI Linux sotto il cofano hanno i comandi descritti, che a differenza delle GUI restano invariati da sempre, dall’inizio dello sviluppo di Linux. Sapere questi comandi non è solo un piccolo traguardo personale, ma diventa un valore aggiunto quando è disponibile il collegamento remoto solo tramite terminale. In quel caso non avremmo nessuna GUI a semplificarci la vita, e dovremmo comunque ricorrere alla riga di comando.
0 commenti