Ressources informatiques

Ressources informatiques

Ressources informatiques

Créer un utilisateur sudo

Objectifs

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 :

adminX@serveurX:~$ sudo useradd -s /bin/bash -m tempo
[sudo] Mot de passe de adminX :
adminX@serveurX:~$ id tempo
uid=1013(tempo) gid=1020(tempo) groupes=1020(tempo)
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 :

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

adminInstallX@serveurX:~$ sudo groupadd test
Sorry, user adminInstallX is not allowed to execute '/usr/sbin/groupadd test' as root on serveurX.
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