GNU/Linux >> Linux Esercitazione >  >> Linux

Gestisci utenti Linux e gruppi Linux

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.


Linux
  1. Gestisci le home directory degli utenti Linux con systemd-homed

  2. Che cos'è un utente Linux?

  3. Utenti e Gruppi

  4. Elenca utenti in Linux - Metodo migliore

  5. Crea, gestisci ed elimina utenti e gruppi in Active Directory

Come gestire gli utenti in Plesk

Come elencare gli utenti in Linux

Comando ID in Linux

Come elencare tutti gli utenti in Linux

Come conoscere i gruppi di un utente Linux

Come creare e gestire nuovi utenti su Linux