Créer un utilisateur sudo
Objectifs
- Assurer l'imputabilité des actions d'administration
- Documentation Recommandations de configuration d’un système GNU/Linux
Installer la commande sudo
x@serveurX:~$ su - root Mot de passe : root@serveurX:~# apt update root@serveurX:~# apt install sudo
Créer un administrateur secondaire appelé adminX
Créer l'utilisateur
root@serveurX:~# useradd -m -s /bin/bash adminX
Attribuer un mot de passe à l'utilisateur
root@serveurX:~# passwd adminX Nouveau mot de passe : Retapez le nouveau mot de passe : passwd: password updated successfully
Ajouter l'utilisateur au groupe sudo
root@serveurX:~# usermod -aG sudo adminX
Vérifier
root@serveurX:~# groups adminX userInstall : adminX sudo
Tester
Utiliser des commandes sudo
avec l'administrateur secondaire
Connectez-vous à l'aide de l'utilisateur adminX
et executez des
commandes d'administration. Exemples :
- Création d'un utilisateur :
adminX@serveurX:~$ sudo useradd -s /bin/bash -m tempo [sudo] Mot de passe de adminX :
- Vérification :
adminX@serveurX:~$ id tempo uid=1013(tempo) gid=1020(tempo) groupes=1020(tempo)
- Suppression d'un utilisateur :
adminX@serveurX:~$ sudo userdel -r tempo
Visualisez la journalisation des commandes saisies par l'utilisateur adminX
adminX@serveurX:~$ sudo journalctl -x | grep 'adminX.*COMMAND' oct. 17 08:24:28 serveurX sudo[891]: adminX : TTY=pts/0 ; PWD=/home/adminX ; USER=root ; COMMAND=/usr/sbin/useradd -s /bin/bash -m tempo oct. 17 08:25:01 serveurX sudo[907]: adminX : TTY=pts/0 ; PWD=/home/adminX ; USER=root ; COMMAND=/usr/sbin/userdel -r tempo oct. 17 08:29:37 serveurX sudo[921]: adminX : TTY=pts/0 ; PWD=/home/adminX ; USER=root ; COMMAND=/usr/bin/journalctl -we
Créer un administrateur secondaire appelé adminInstallX
possédant des droits limités
On souhaite créer un groupe d'administrateur adminIntallGroup
possédant uniquement le droit d'utiliser la commande apt
.
Créer le goupe et l'utilisateur
Démarche :
- Créer le groupe
adminInstallGroup
- Créer l'utilisateur
adminInstallX
- Attribuez un mot de passe à l'utilisateur
adminInstallX
adminX@serveurX:~$ sudo groupadd adminInstallGroup [sudo] Mot de passe de adminX : adminX@serveurX:~$ sudo useradd -m -s /bin/bash -G adminInstallGroup adminInstallX adminX@serveurX:~$ sudo passwd adminInstallX Nouveau mot de passe : Retapez le nouveau mot de passe : passwd : mot de passe mis à jour avec succès adminX@serveurX:~$ id adminInstallX uid=1009(adminInstallX) gid=1015(adminInstallX) groupes=1015(adminInstallX),1014(adminInstallGroup)
Sauvegarder le fichier sudoers
adminX@serveurX:~$ sudo cp /etc/sudoers /etc/sudoers.origin
Ajouter l'autorisation d'utiliser la commande apt
pour
les membres du groupe adminInstallGroup
Saisissez la commande ci-dessous :
adminX@serveurX:~$ sudo visudo
Ajoutez les lignes en jaune ci-dessous
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" # This fixes CVE-2005-4890 and possibly breaks some versions of kdesu # (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532) Defaults use_pty # This preserves proxy settings from user environments of root # equivalent users (group sudo) #Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy" # This allows running arbitrary commands, but so does ALL, and it means # different sudoers have their choice of editor respected. #Defaults:%sudo env_keep += "EDITOR" # Completely harmless preservation of a user preference. #Defaults:%sudo env_keep += "GREP_COLOR" # While you shouldn't normally run git as root, you need to with etckeeper #Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*" # Per-user preferences; root won't have sensible values for them. #Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME" # "sudo scp" or "sudo rsync" should be able to use your SSH agent. #Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK" # Ditto for GPG agent #Defaults:%sudo env_keep += "GPG_AGENT_INFO" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # Membre du groupe adminIntallGroup %adminInstallGroup ALL=(ALL:ALL) /usr/bin/apt # See sudoers(5) for more information on "@include" directives: @includedir /etc/sudoers.d
Tester en se connectant avec l'utilisateur adminInstallX
Connectez-vous avec l'utilisateur adminInstallX
- Echec de l'utilisation de la commande
groupadd
adminInstallX@serveurX:~$ sudo groupadd test Sorry, user adminInstallX is not allowed to execute '/usr/sbin/groupadd test' as root on serveurX.
- Utilisation de la commande
apt
adminInstallX@serveurX:~$ sudo apt update Atteint :1 http://deb.debian.org/debian bookworm InRelease Atteint :2 http://deb.debian.org/debian bookworm-updates InRelease Atteint :3 http://security.debian.org/debian-security bookworm-security InRelease Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait Lecture des informations d'état... Fait 57 paquets peuvent être mis à jour. Exécutez « apt list --upgradable » pour les voir.
Visualisez la journalisation des commandes saisies par l'utilisateur adminX
adminInstallX@serveurX:~$ journalctl -x | grep 'adminInstallX.*COMMAND' oct. 17 13:48:07 serveurX sudo[1957]: adminInstallX : command not allowed ; TTY=pts/1 ; PWD=/home/adminInstallX ; USER=root ; COMMAND=/usr/sbin/groupadd test oct. 17 13:48:16 serveurX sudo[1958]: adminInstallX : TTY=pts/1 ; PWD=/home/adminInstallX ; USER=root ; COMMAND=/usr/bin/apt update