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