Comment vérifier si un utilisateur a accès aux privilèges sudo sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si un utilisateur dispose d'un accès sudo sur Linux. Vous explorerez trois méthodes courantes : tester directement les privilèges sudo en utilisant sudo -l, examiner le fichier de configuration /etc/sudoers, et vérifier si l'utilisateur appartient au groupe sudo.

En effectuant ces étapes, vous acquerrez des compétences pratiques pour comprendre et vérifier les autorisations des utilisateurs liées aux tâches administratives dans un environnement Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") subgraph Lab Skills linux/cat -.-> lab-558774{{"Comment vérifier si un utilisateur a accès aux privilèges sudo sous Linux"}} linux/sudo -.-> lab-558774{{"Comment vérifier si un utilisateur a accès aux privilèges sudo sous Linux"}} linux/groups -.-> lab-558774{{"Comment vérifier si un utilisateur a accès aux privilèges sudo sous Linux"}} end

Tester les privilèges sudo avec sudo -l

Dans cette étape, vous apprendrez à vérifier vos privilèges sudo en utilisant la commande sudo -l. sudo (SuperUser DO) permet à un utilisateur autorisé d'exécuter une commande en tant que superutilisateur ou en tant qu'un autre utilisateur, comme spécifié par la politique de sécurité.

La commande sudo -l liste les commandes que l'utilisateur est autorisé à exécuter sur l'hôte actuel, ou les commandes autorisées sur un hôte spécifié.

Vérifions les privilèges sudo de l'utilisateur actuel (labex). Ouvrez votre terminal s'il n'est pas déjà ouvert.

Tapez la commande suivante et appuyez sur Entrée :

sudo -l

Vous devriez voir une sortie similaire à celle-ci :

Matching Defaults entries for labex on ...:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User labex may run the following commands on ...:
    (ALL : ALL) NOPASSWD: ALL

Cette sortie vous indique que l'utilisateur labex peut exécuter TOUTES les commandes en tant que TOUS les utilisateurs (ALL : ALL) sans avoir besoin de mot de passe (NOPASSWD: ALL). Cela confirme que votre utilisateur labex dispose de tous les privilèges sudo sans avoir besoin de mot de passe.

Comprendre sudo est crucial pour gérer les autorisations et exécuter des tâches administratives sur Linux.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le fichier sudoers avec cat /etc/sudoers

Dans cette étape, vous allez examiner le fichier /etc/sudoers, qui est le fichier de configuration principal pour sudo. Ce fichier détermine quels utilisateurs ou groupes peuvent exécuter quelles commandes en tant que quels utilisateurs.

Important : Éditer directement le fichier /etc/sudoers peut être dangereux et vous peut empêcher d'accéder à votre système si cela est fait incorrectement. Il est généralement recommandé d'utiliser la commande visudo pour éditer ce fichier, car elle effectue une vérification de syntaxe. Cependant, pour cette étape, nous allons simplement afficher le contenu du fichier en utilisant la commande cat pour comprendre sa structure.

Étant donné que /etc/sudoers est un fichier système, vous avez besoin de privilèges sudo pour le lire.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

sudo cat /etc/sudoers

Vous verrez le contenu du fichier /etc/sudoers. Recherchez les lignes qui définissent les autorisations des utilisateurs ou des groupes. Vous pourriez voir des lignes similaires à celles-ci (les commentaires commencent par #) :

#
## 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:/snap/bin"

## 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

## See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

La ligne %sudo ALL=(ALL:ALL) ALL est particulièrement importante. Elle signifie que tout utilisateur qui est membre du groupe sudo (%sudo) peut exécuter des commandes (ALL) en tant que n'importe quel utilisateur (ALL) et n'importe quel groupe (ALL) sur n'importe quel hôte (ALL). C'est une façon courante d'accorder des privilèges administratifs aux utilisateurs dans les systèmes basés sur Debian comme Ubuntu.

En visualisant ce fichier, vous comprenez mieux comment les autorisations sudo sont configurées sur le système.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le groupe sudo avec la commande groups

Dans l'étape précédente, vous avez vu dans le fichier /etc/sudoers que les membres du groupe sudo ont tous les privilèges sudo. Dans cette étape, vous allez vérifier que l'utilisateur labex est bien membre du groupe sudo en utilisant la commande groups.

La commande groups affiche les noms des groupes principaux et supplémentaires pour chaque nom d'utilisateur donné, ou pour le processus actuel si aucun nom d'utilisateur n'est spécifié.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

groups

Vous devriez voir une sortie similaire à celle-ci, listant les groupes dont l'utilisateur labex est membre :

labex sudo ssl-cert public

Cette sortie montre que labex est membre des groupes labex, sudo, ssl-cert et public. La présence de sudo dans la liste confirme que l'utilisateur labex fait partie du groupe qui a les privilèges sudo selon le fichier /etc/sudoers.

Alternativement, vous pouvez spécifier le nom d'utilisateur avec la commande groups :

groups labex

La sortie sera la même :

labex : labex sudo ssl-cert public

Cette étape renforce le lien entre l'appartenance à un groupe et les privilèges sudo configurés dans le système.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier si un utilisateur a accès aux privilèges sudo sous Linux. Vous avez commencé par utiliser la commande sudo -l pour lister les commandes que l'utilisateur actuel est autorisé à exécuter avec les privilèges sudo, ce qui a confirmé que l'utilisateur labex a un accès complet aux privilèges sudo sans mot de passe.

Vous avez ensuite exploré le fichier /etc/sudoers en utilisant la commande cat pour comprendre son rôle dans la configuration des autorisations sudo, bien qu'il ait été souligné que visudo est l'outil recommandé pour éditer ce fichier. Enfin, vous avez généralement vérifié si l'utilisateur fait partie du groupe sudo en utilisant la commande groups, car l'appartenance à un groupe est une méthode courante pour accorder l'accès aux privilèges sudo.