Linux, come tutti sappiamo, è un sistema operativo multiutente. Se hai più utenti su un desktop o un server, puoi gestire facilmente più account utente Linux e fornire autorizzazioni a ciascun account.
In questo articolo imparerai –
- Come gestire utenti e gruppi su un sistema Linux
- Crea un nuovo account utente in Linux
- Aggiungi utente a un gruppo in Linux
- Crea un gruppo di utenti in Linux
- Rimuovi il gruppo di utenti in Linux
Gestisci utenti Linux
Ma, prima di discutere come gestire gli utenti Linux e i gruppi Linux, lascia che ti spieghi perché avere un account utente distinto è fondamentale dal punto di vista della sicurezza. Molti utenti iniziano a utilizzare l'account root al primo avvio di un server Linux, cosa non consigliata.
Non è una buona idea eseguire le operazioni quotidiane del server utilizzando un account root. L'utente root è un account superutente. Aver effettuato l'accesso garantisce che almeno una volta l'utente eseguirà un comando errato e l'utente root lo farà, il più delle volte senza nemmeno chiedere conferma. Quando accedi come utente non root, l'utente ha meno accesso al sistema ed è meno probabile che faccia qualcosa di sbagliato.
In secondo luogo, l'aggiunta di utenti a uno o più gruppi anziché la gestione di singoli utenti semplifica la gestione di più utenti in Linux. Questo ci porta all'argomento dei gruppi di utenti Linux. Può essere noioso per alcuni utenti desktop, ma è una funzione utile per gli amministratori di sistema.
Gruppi di utenti Linux
La gestione di più utenti è un compito difficile per un amministratore di sistema, soprattutto quando gli utenti provengono da vari domini. Un amministratore può voler concedere a un tipo di utente l'accesso a una directory mentre nega ad altri tipi di utenti l'accesso ad altre directory sul sistema. In alternativa, un amministratore potrebbe voler avere più tipi di utenti con autorizzazioni diverse nella stessa directory. È possibile farlo su Linux creando gruppi di utenti Linux.
Supponiamo di possedere una società di sviluppo software. Tutte le directory di progetto sono memorizzate su un server centrale. Vogliamo solo fornire ai programmatori Python l'accesso alla directory Python, che contiene tutto il codice Python.
Per dimostrare, creeremo un nuovo utente chiamato sand. Sandy è uno sviluppatore Python che richiede l'accesso alla directory del codice Python del nostro server. Quindi iniziamo creando il suo account.
Crea un nuovo utente in Linux
Creare un nuovo utente in Linux è estremamente facile dalla GUI.
Ad esempio, sto usando Manjaro Linux (Deepin) e creare un nuovo utente è come creare una nuova nota in qualsiasi applicazione per prendere appunti. Basta digitare il nome utente e la password e il gioco è fatto.
Ma se devi creare un nuovo utente su un server Linux, i seguenti due comandi possono fare il lavoro –
- aggiungi utente
- utente aggiuntivo
aggiunta utente – Questo comando è disponibile in tutte le distribuzioni Linux. Accetta diversi argomenti per creare un nuovo utente in Linux . Se eseguito senza argomenti, il comando creerà un account utente senza home directory, estensione della shell, ecc.
Tuttavia, puoi impostare le opzioni predefinite in /etc/default/useradd
in modo che ogni volta che un utente viene creato, il comando prende i valori predefiniti da /etc/default/useradd
automaticamente.
utente aggiuntivo – Un comando scritto in perl che utilizza useradd
nel backend. A differenza di useradd
, richiede solo il nome utente ed esegue una configurazione nel terminale per creare un utente. È più facile di useradd.
adduser
è disponibile solo in Ubuntu e in altre distribuzioni Linux basate su Debian.
Come si usa useradd?
useradd -m sandy
Il comando precedente creerà un account utente con una home directory in /home/sandy
. Ora imposta la password per l'utente.
sudo passwd sandy
E questo è tutto. È stato creato un utente. Se vuoi creare una directory home diversa per l'utente, il -d
il parametro è per quello.
sudo useradd -d /home/james sandy
Puoi anche impostare la shell nel comando useradd. Basta usare i -s
parametro.
sudo useradd -d /home/james -s /bin/bash sandy
Come si usa adduser?
Come accennato in precedenza, adduser
è molto più semplice di useradd
. Richiede solo il nome utente. adduser
pone domande e imposta i valori di input come valori dei parametri nel comando useradd.
sudo adduser sandy
Se stai usando Ubuntu o altre distribuzioni basate su Debian, vai avanti con adduser
comando. Questo comando è stato creato per semplificare il processo di creazione degli utenti sui sistemi Linux.
Aggiungi gruppo utenti in Linux
Come accennato in precedenza, la gestione degli utenti Linux è più semplice aggiungendoli a uno o gruppi Linux.
Possiamo creare un gruppo chiamato "python-programmers", aggiungere sandy, il nostro sviluppatore python, a questo gruppo, e quindi concedergli l'accesso alla directory Python.
groupadd python-programmer
Aggiungi utente a un gruppo in Linux
Ora aggiungi sand al gruppo python-programmatore.
sudo usermod -aG python-programmer sandy
Aggiungi gruppo a una directory in Linux
Cambia il gruppo della directory Python che esiste in $HOME/Projects/Python
.
sudo chown -R :python-programmer $HOME/Projects/Python
Aggiungi autorizzazioni alla directory
Ora aggiungi i permessi di lettura e scrittura alla directory per gli utenti del gruppo.
sudo chmod -R g+w $HOME/Projects/Python
Rimuovi autorizzazioni dalla directory
E infine, impedisci ad altri utenti di accedere alla directory Python.
sudo chmod -R o-x Python
E il lavoro è fatto! Ora è possibile accedere alla directory Python dall'utente root o da qualsiasi utente nel gruppo "python-programmers".
Ma c'è un problema!
La procedura di cui sopra farà il lavoro. Concederà l'accesso agli utenti di programmatori python alla directory Python, ma c'è un problema. L'approccio di cui sopra consentirà a un solo gruppo di utenti di accedere alla directory Python alla volta. Se desideri consentire ad altri sviluppatori di accedere alla directory Python, dovrai rimuovere l'accesso dal gruppo precedente e impostare il nuovo gruppo come proprietario della directory.
Per risolvere questo problema e consentire l'accesso a più tipi di utenti contemporaneamente, possiamo utilizzare gli elenchi di controllo degli accessi.
Elenchi di controllo accessi
Supponiamo di avere un gruppo di revisori dei conti nella nostra azienda. Vogliamo consentire agli auditor del gruppo di avere accesso in "lettura" alla directory Python senza rimuovere nessun altro gruppo da essa.
setfacl -m g:auditors:rx -R $HOME/Projects/Python
E questo è tutto. Ora gli utenti del gruppo python-programmers hanno accesso in lettura e scrittura e gli utenti del gruppo degli auditor hanno accesso in lettura alla directory Python. Se vuoi consentire anche ai revisori di avere accesso in scrittura, aggiungi il w nel comando precedente.
setfacl -m g:auditors:rwx -R $HOME/Projects/Python
Rimuovi utente in Linux
Potrebbe anche essere necessario rimuovere un utente in Linux. Può essere fatto usando userdel
comando.
userdel sandy
Avviso L'eliminazione di un utente è un'azione irreversibile. Quindi assicurati di eseguire il backup di file e impostazioni importanti prima di rimuovere qualsiasi utente. Per impostazione predefinita, il comando non rimuoverà la home directory dell'utente.Avviso
Prima di rimuovere qualsiasi utente in Linux, assicurati che l'utente non stia utilizzando nessun altro processo. Altrimenti, riceverai il seguente errore –
userdel: The user sandy is being used by process 3861
Elenca tutti i processi di un utente in Linux
ps -u sandy
Output -
PID TTY TIME CMD
4831 ? 00:00:00 systemd
4832 ? 00:00:00 (sd-pam)
4845 ? 00:00:00 gnome-keyring-d
4849 tty5 00:00:00 gdm-x-session
4851 tty5 00:00:10 Xorg
4856 ? 00:00:00 dbus-daemon
4860 tty5 00:00:00 gnome-session-b
4958 ? 00:00:00 ssh-agent
4961 ? 00:00:00 gvfsd
4966 ? 00:00:00 gvfsd-fuse
4975 ? 00:00:00 at-spi-bus-laun
4980 ? 00:00:00 dbus-daemon
4983 ? 00:00:00 at-spi2-registr
4997 ? 00:00:00 gnome-keyring-d
5012 tty5 00:00:21 gnome-shell
5023 ? 00:00:00 pulseaudio
5032 tty5 00:00:00 ibus-daemon
5034 ? 00:00:00 xdg-permission-
5042 tty5 00:00:00 ibus-dconf
5044 ? 00:00:00 gnome-shell-cal
5046 tty5 00:00:00 ibus-x11
5050 ? 00:00:00 ibus-portal
5057 ? 00:00:00 evolution-sourc
5066 ? 00:00:00 dconf-service
5073 ? 00:00:00 goa-daemon
5084 ? 00:00:00 goa-identity-se
5094 ? 00:00:00 gvfs-udisks2-vo
5099 ? 00:00:00 gvfs-gphoto2-vo
5103 ? 00:00:00 gvfs-goa-volume
5107 ? 00:00:00 gvfs-afc-volume
5112 ? 00:00:00 gvfs-mtp-volume
5116 tty5 00:00:00 gsd-power
5117 tty5 00:00:00 gsd-print-notif
5119 tty5 00:00:00 gsd-rfkill
5121 tty5 00:00:00 gsd-screensaver
5125 tty5 00:00:00 gsd-sharing
5128 tty5 00:00:00 gsd-smartcard
5130 tty5 00:00:00 gsd-xsettings
5131 tty5 00:00:00 gsd-wacom
5139 tty5 00:00:00 gsd-sound
5144 tty5 00:00:00 gsd-a11y-settin
5147 tty5 00:00:00 gsd-color
5150 tty5 00:00:00 gsd-clipboard
5154 tty5 00:00:00 gsd-housekeepin
5155 tty5 00:00:00 gsd-datetime
5160 tty5 00:00:00 gsd-media-keys
5162 tty5 00:00:00 gsd-keyboard
5164 tty5 00:00:00 gsd-mouse
5186 tty5 00:00:00 gsd-printer
5217 tty5 00:00:00 gsd-disk-utilit
5219 tty5 00:00:01 nautilus-deskto
5232 ? 00:00:00 gvfsd-trash
5254 ? 00:00:00 evolution-calen
5267 ? 00:00:00 evolution-calen
5282 ? 00:00:00 evolution-addre
5289 ? 00:00:00 evolution-addre
5310 tty5 00:00:00 ibus-engine-sim
5311 ? 00:00:00 gvfsd-metadata
5364 ? 00:00:00 gvfsd-network
5375 ? 00:00:00 gvfsd-dnssd
5443 tty5 00:00:00 update-notifier
5461 tty5 00:00:02 gnome-software
5563 ? 00:00:03 nautilus
5951 tty5 00:00:00 deja-dup-monito
Oppure c'è un altro comando per elencare i processi degli utenti in Linux, pgrep
.
pgrep -u sandy
Output -
4831
4832
4845
4849
4851
4856
4860
4958
4961
4966
4975
4980
4983
4997
5012
5023
5032
5034
5042
Chiudi tutti i processi utilizzati dall'utente
killall
comando ucciderà tutti i processi degli utenti.
killall -u sandy
Rimuovi un utente Linux
Dopo che tutti i processi degli utenti sono stati uccisi, possiamo eliminare l'utente.
userdel sandy
Come accennato in precedenza, per impostazione predefinita, il comando non rimuoverà la home directory dell'utente. Per rimuovere anche la home directory dell'utente, aggiungi –-r
argomento del comando.
userdel -r sandy
Rimuovi utente da un gruppo in Linux
Se decidi di sottrarre i diritti a un utente, rimuovi l'utente dal gruppo.
sudo gpasswd -d sandy python-programmers
Se l'utente è un membro del gruppo, produrrà quanto segue –
Removing user sandy from group python-programmers
Rimuovi un gruppo in Linux
Se vuoi rimuovere un gruppo in Linux, usa groupdel
comando.
groupdel username
Se il gruppo di eliminazione è il gruppo principale per uno qualsiasi degli utenti del sistema, il gruppo non può essere eliminato. In tal caso, cambia il gruppo principale di quell'utente.
Elimina il gruppo di auditor dal sistema.
groupdel auditors
Conclusione
Questo è tutto ciò che c'è da fare. Gestire gli utenti Linux e i gruppi Linux è semplice. Dopo aver appreso come gestire gli utenti, sarai in grado di mantenere i tuoi file al sicuro e privati senza fare affidamento su una libreria o un servizio di terze parti.
Se ritieni che abbia trascurato qualcosa nell'articolo, faccelo sapere nella sezione commenti qui sotto. Aggiornerò questo articolo ogni tre mesi con i tuoi suggerimenti (con il tuo nome).
Per favore fatemi sapere se non capite nessuna delle istruzioni nell'area commenti qui sotto. Se sei un nerd e hai scoperto un errore nell'articolo, faccelo sapere utilizzando la pagina Contattaci o unendoti al nostro server Discord.