Linux, comme nous le savons tous, est un système d'exploitation multi-utilisateurs. Si vous avez plusieurs utilisateurs sur un poste de travail ou un serveur, vous pouvez facilement gérer plusieurs comptes d'utilisateurs Linux et accorder des autorisations à chaque compte.
Dans cet article, vous apprendrez –
- Comment gérer les utilisateurs et les groupes sur un système Linux
- Créer un nouveau compte utilisateur sous Linux
- Ajouter un utilisateur à un groupe sous Linux
- Créer un groupe d'utilisateurs sous Linux
- Supprimer un groupe d'utilisateurs sous Linux
Gérer les utilisateurs Linux
Mais, avant de discuter de la gestion des utilisateurs Linux et des groupes Linux, laissez-moi vous expliquer pourquoi avoir un compte utilisateur distinct est vital du point de vue de la sécurité. De nombreux utilisateurs commencent à utiliser le compte root lors du premier démarrage d'un serveur Linux, ce qui n'est pas recommandé.
Ce n'est pas une bonne idée d'exécuter les opérations quotidiennes du serveur à l'aide d'un compte root. L'utilisateur racine est un compte superutilisateur. L'avoir connecté garantit qu'au moins une fois l'utilisateur exécutera une commande incorrecte, et l'utilisateur root le fera, la plupart du temps sans même demander de confirmation. Lorsque vous vous connectez en tant qu'utilisateur non root, l'utilisateur a moins d'accès au système et est moins susceptible de faire quelque chose de mal.
Deuxièmement, l'ajout d'utilisateurs à un ou plusieurs groupes plutôt que la gestion d'utilisateurs individuels facilite la gestion de plusieurs utilisateurs sous Linux. Cela nous amène au sujet des groupes d'utilisateurs Linux. Cela peut être fastidieux pour certains utilisateurs de bureau, mais c'est une fonction utile pour les administrateurs système.
Groupes d'utilisateurs Linux
La gestion de plusieurs utilisateurs est une corvée difficile pour un administrateur système, en particulier lorsque les utilisateurs proviennent de différents domaines. Un administrateur peut souhaiter accorder à un type d'utilisateur l'accès à un répertoire tout en refusant à d'autres types d'utilisateurs l'accès à d'autres répertoires du système. Alternativement, un administrateur peut souhaiter avoir plusieurs types d'utilisateurs avec des autorisations variées dans le même répertoire. Il est possible d'y parvenir sous Linux en créant des groupes d'utilisateurs Linux.
Supposons que nous possédions une société de développement de logiciels. Tous les répertoires de projet sont stockés sur un serveur central. Nous souhaitons uniquement permettre aux programmeurs Python d'accéder au répertoire Python, qui contient tout le code Python.
Pour démontrer, nous allons créer un nouvel utilisateur nommé sandy. Sandy est un développeur Python qui a besoin d'accéder au répertoire de code Python de notre serveur. Alors commençons par faire son compte.
Créer un nouvel utilisateur sous Linux
La création d'un nouvel utilisateur sous Linux est extrêmement facile à partir de l'interface graphique.
Par exemple, j'utilise Manjaro Linux (Deepin), et créer un nouvel utilisateur revient à créer une nouvelle note dans n'importe quelle application de prise de notes. Tapez simplement le nom d'utilisateur et le mot de passe, et c'est tout.
Mais si vous devez créer un nouvel utilisateur sur un serveur Linux, les deux commandes suivantes peuvent faire le travail -
- useradd
- adduser
useradd – Cette commande est disponible dans toutes les distributions Linux. Il accepte différents arguments pour créer un nouvel utilisateur sous Linux . Si elle est exécutée sans arguments, la commande créera un compte utilisateur sans répertoire personnel, extension de shell, etc.
Cependant, vous pouvez définir les options par défaut dans /etc/default/useradd
de sorte qu'à chaque fois qu'un utilisateur est créé, la commande prend les valeurs par défaut de /etc/default/useradd
automatiquement.
adduser – Une commande écrite en perl qui utilise useradd
dans le backend. Contrairement à useradd
, il ne nécessite que le nom d'utilisateur et exécute une configuration dans le terminal pour créer un utilisateur. C'est plus facile que useradd.
adduser
n'est disponible que dans Ubuntu et d'autres distributions Linux basées sur Debian.
Comment utiliser useradd ?
useradd -m sandy
La commande ci-dessus créera un compte utilisateur avec un répertoire personnel à /home/sandy
. Définissez maintenant le mot de passe de l'utilisateur.
sudo passwd sandy
Et c'est tout. Un utilisateur a été créé. Si vous souhaitez créer un répertoire personnel différent pour l'utilisateur, le -d
le paramètre est pour ça.
sudo useradd -d /home/james sandy
Vous pouvez également définir le shell dans la commande useradd. Utilisez simplement le -s
paramètre.
sudo useradd -d /home/james -s /bin/bash sandy
Comment utiliser adduser ?
Comme je l'ai mentionné ci-dessus, adduser
est bien plus simple que useradd
. Il ne nécessite que le nom d'utilisateur. adduser
pose des questions et définit les valeurs d'entrée comme valeurs de paramètre dans la commande useradd.
sudo adduser sandy
Si vous utilisez Ubuntu ou d'autres distributions basées sur Debian, continuez avec adduser
commande. Cette commande a été créée pour simplifier le processus de création d'utilisateur sur les systèmes Linux.
Ajouter un groupe d'utilisateurs sous Linux
Comme mentionné ci-dessus, la gestion des utilisateurs Linux est plus facile en les ajoutant à un ou plusieurs groupes Linux.
Nous pouvons créer un groupe appelé "python-programmers", ajouter sandy, notre développeur python, à ce groupe, puis lui accorder l'accès au répertoire Python.
groupadd python-programmer
Ajouter un utilisateur à un groupe sous Linux
Ajoutez maintenant sandy au groupe python-programmer.
sudo usermod -aG python-programmer sandy
Ajouter un groupe à un répertoire sous Linux
Changez le groupe du répertoire Python qui existe sous $HOME/Projects/Python
.
sudo chown -R :python-programmer $HOME/Projects/Python
Ajouter des autorisations au répertoire
Ajoutez maintenant l'autorisation de lecture et d'écriture au répertoire pour les utilisateurs du groupe.
sudo chmod -R g+w $HOME/Projects/Python
Supprimer les autorisations du répertoire
Et enfin, interdisez aux autres utilisateurs d'accéder au répertoire Python.
sudo chmod -R o-x Python
Et le travail est fait ! Désormais, le répertoire Python est accessible soit par l'utilisateur root, soit par n'importe quel utilisateur du groupe "python-programmers".
Mais il y a un problème !
La procédure ci-dessus fera l'affaire. Il accordera l'accès aux utilisateurs de programmeurs python au répertoire Python, mais il y a un problème. L'approche ci-dessus ne permettra qu'à un seul groupe d'utilisateurs d'accéder au répertoire Python à la fois. Si vous souhaitez autoriser d'autres développeurs à accéder au répertoire Python, vous devrez supprimer l'accès du groupe précédent et définir le nouveau groupe comme propriétaire du répertoire.
Pour résoudre ce problème et autoriser l'accès à plusieurs types d'utilisateurs à la fois, nous pouvons utiliser des listes de contrôle d'accès.
Listes de contrôle d'accès
Disons que nous avons un groupe d'auditeurs dans notre société. Nous voulons permettre aux auditeurs du groupe d'avoir un accès en "lecture" au répertoire Python sans en supprimer aucun autre groupe.
setfacl -m g:auditors:rx -R $HOME/Projects/Python
Et c'est tout. Désormais, les utilisateurs du groupe python-programmers ont un accès en lecture et en écriture, et les utilisateurs du groupe des auditeurs ont un accès en lecture sur le répertoire Python. Si vous souhaitez autoriser également les auditeurs à avoir un accès en écriture, ajoutez le w dans la commande ci-dessus.
setfacl -m g:auditors:rwx -R $HOME/Projects/Python
Supprimer un utilisateur sous Linux
Vous devrez peut-être également supprimer un utilisateur sous Linux. Cela peut être fait en utilisant userdel
commande.
userdel sandy
Avertissement La suppression d'un utilisateur est une action non récupérable. Assurez-vous donc de sauvegarder les fichiers et paramètres importants avant de supprimer un utilisateur. Par défaut, la commande ne supprimera pas le répertoire personnel de l'utilisateur.Remarque
Avant de supprimer un utilisateur sous Linux, assurez-vous que l'utilisateur n'utilise aucun autre processus. Sinon, vous obtiendrez l'erreur suivante -
userdel: The user sandy is being used by process 3861
Liste tous les processus d'un utilisateur sous 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
Ou il existe une autre commande pour lister les processus des utilisateurs sous 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
Tuer tous les processus utilisés par l'utilisateur
killall
la commande tuera tous les processus des utilisateurs.
killall -u sandy
Supprimer un utilisateur Linux
Une fois tous les processus des utilisateurs supprimés, nous pouvons supprimer l'utilisateur.
userdel sandy
Comme je l'ai mentionné ci-dessus, par défaut, la commande ne supprimera pas le répertoire personnel de l'utilisateur. Pour supprimer également le répertoire personnel de l'utilisateur, ajoutez –-r
argument de la commande.
userdel -r sandy
Supprimer un utilisateur d'un groupe sous Linux
Si vous décidez de retirer les droits d'un utilisateur, supprimez l'utilisateur du groupe.
sudo gpasswd -d sandy python-programmers
Si l'utilisateur est membre du groupe, il affichera ce qui suit -
Removing user sandy from group python-programmers
Supprimer un groupe sous Linux
Si vous souhaitez supprimer un groupe sous Linux, utilisez groupdel
commande.
groupdel username
Si le groupe de suppression est le groupe principal de l'un des utilisateurs du système, le groupe ne peut pas être supprimé. Dans ce cas, modifiez le groupe principal de cet utilisateur.
Supprimer le groupe d'auditeurs du système.
groupdel auditors
Conclusion
C'est tout ce qu'on peut en dire. La gestion des utilisateurs Linux et des groupes Linux est simple. Une fois que vous aurez appris à gérer les utilisateurs, vous serez en mesure de garder vos fichiers en sécurité et privés sans dépendre d'une bibliothèque ou d'un service tiers.
Si vous pensez que j'ai oublié quelque chose dans l'article, veuillez me le faire savoir dans la section des commentaires ci-dessous. Je mettrai à jour cet article tous les trois mois avec vos suggestions (avec votre nom).
S'il vous plaît laissez-moi savoir si vous ne comprenez pas l'une des instructions dans la zone de commentaires ci-dessous. Si vous êtes un nerd et avez découvert une erreur dans l'article, veuillez me le faire savoir en utilisant la page Contactez-nous ou en rejoignant notre serveur Discord.