Comment examiner l'utilisation de la commande sudo sous Linux

Publié: 2022-08-24
Ordinateur portable Linux affichant une invite bash
fatmawati achmad zaenuri/Shutterstock.com

La commande sudo donne à un utilisateur des pouvoirs superutilisateur ou root. Vous leur avez sans doute prononcé le discours « avec un grand pouvoir vient une grande responsabilité ». Voici comment vérifier s'ils ont écouté ou non.

La commande sudo

La commande sudo signifie "utilisateur de substitution do". Il permet à une personne autorisée d'exécuter une commande comme s'il s'agissait d'un autre utilisateur. Il peut prendre des paramètres de ligne de commande, dont l'un est le nom de l'utilisateur sous lequel vous souhaitez exécuter la commande. La manière la plus courante d'utiliser sudo consiste à omettre les options de ligne de commande et à utiliser l'action par défaut. Cela exécute effectivement la commande en tant qu'utilisateur root.

Utiliser sudo de cette manière nécessite une autorisation spéciale. Seuls les privilégiés peuvent utiliser sudo . Lorsque vous installez une distribution Linux moderne, vous êtes invité à configurer un mot de passe root que vous pouvez utiliser avec sudo . L'autorisation de le faire est accordée à l'utilisateur régulier que vous créez lors de l'installation. Il s'agit de la méthode privilégiée pour gérer l'accès aux fonctionnalités de l'utilisateur root. L'ancienne méthode consistait à créer un utilisateur root et à se connecter en tant qu'eux afin d'administrer votre système.

C'était un scénario dangereux. Il était facile d'oublier ou d'être trop paresseux pour se déconnecter et se reconnecter en tant qu'utilisateur habituel lorsque vous n'aviez plus besoin des privilèges root. Toutes les erreurs que vous avez commises dans la fenêtre du terminal en tant que root seraient exécutées, aussi radicales soient-elles. Les choses qui seraient bloquées par le shell si un utilisateur régulier essayait de les faire s'exécuteraient sans aucun doute lorsque root les demanderait. L'utilisation du compte root au lieu d'un compte normal présente également un risque de sécurité.

Comment contrôler l'accès sudo sous Linux
CONNEXION Comment contrôler l'accès sudo sous Linux

L'utilisation de sudo concentre l'esprit. Vous entrez dans les mêmes eaux dangereuses, mais vous choisissez consciemment de le faire et, espérons-le, faites très attention. Vous n'invoquez votre statut de superutilisateur que lorsque vous devez faire quelque chose qui en a besoin.

Si vous ouvrez l'accès root à d'autres utilisateurs, vous voulez savoir qu'ils prennent autant soin d'eux que vous. Vous ne voulez pas qu'ils exécutent des commandes de manière imprudente ou spéculative. La santé et le bien-être de votre installation Linux dépendent du comportement respectueux et responsable des utilisateurs privilégiés.

Voici plusieurs façons de surveiller leur utilisation racine.

Le fichier auth.log

Certaines distributions maintiennent un journal d'authentification, dans un fichier appelé "auth.log". Avec l'avènement et l'adoption rapide de systemd , le besoin du fichier « auth.log » a été supprimé. Le démon systemd-journal consolide les journaux système dans un nouveau format binaire et journalctl vous permet d'examiner ou d'interroger les journaux.

Si vous avez un fichier "auth.log" sur votre ordinateur Linux, il se trouvera probablement dans le répertoire "/var/log/", bien que sur certaines distributions, le nom de fichier et le chemin soient "/var/log/audit/audit .Journal."

Vous pouvez ouvrir le fichier en less comme ceci. N'oubliez pas d'ajuster le chemin et le nom du fichier en fonction de votre distribution et soyez prêt au cas où votre Linux ne créerait même pas de fichier d'authentification.

Cette commande fonctionnait sur Ubuntu 22.04.

 moins /var/log/auth.log 

En regardant le fichier /var/log/auth.log avec moins

Le fichier journal est ouvert et vous pouvez faire défiler le fichier ou utiliser les fonctions de recherche intégrées à less pour rechercher "sudo".

Le contenu du fichier /var/log/auth.log affiché en moins

Même en utilisant les fonctions de recherche de less , la localisation des entrées sudo qui vous intéressent peut prendre un certain temps.

Disons que nous voulons voir pourquoi un utilisateur appelé mary a utilisé sudo . Nous pouvons rechercher dans le fichier journal avec grep les lignes contenant "sudo", puis diriger à nouveau la sortie via grep et rechercher les lignes contenant "mary".

Notez le sudo avant grep et avant le nom du fichier journal.

 sudo grep sudo /var/log/auth.log | grep "marie" 

Utilisation de grep pour filtrer les entrées qui mentionnent mary et sudo

Cela nous donne des lignes qui contiennent "sudo" et "mary".

Nous pouvons voir que l'utilisateur mary a reçu les privilèges sudo à 15h25, et à 15h27, elle ouvre le fichier fstab dans un éditeur. C'est le type d'activité qui justifie définitivement une plongée plus profonde, en commençant par une conversation avec l'utilisateur.

Utiliser journalctl

La méthode préférée sur les distributions Linux basées sur systmd consiste à utiliser la commande journalctl pour consulter les journaux système.

Si nous transmettons le nom d'un programme à journalctl , il recherchera dans les fichiers journaux les entrées contenant des références à ce programme. Parce que sudo est un binaire situé dans "/usr/bin/sudo", nous pouvons le transmettre à journactl . L'option -e (pager end) indique à journalctl d'ouvrir le pager de fichiers par défaut. Habituellement, ce sera less . L'affichage défile automatiquement vers le bas pour afficher les entrées les plus récentes.

 sudo journalctl -e /usr/bin/sudo 

Utilisation de journalctl pour rechercher des entrées qui mentionnent sudo

Les entrées de journal qui comportent sudo sont répertoriées dans less.

journalctl affichant les entrées contenant sudo dans le visualiseur de fichiers less

Utilisez la touche "RightArrow" pour faire défiler vers la droite pour voir la commande qui a été utilisée avec chacune des invocations de sudo . (Ou étirez la fenêtre de votre terminal pour qu'elle soit plus large.)

Défilement latéral pour voir les commandes utilisées avec sudo

Et comme la sortie est affichée dans less , vous pouvez rechercher du texte tel que des noms de commande, des noms d'utilisateur et des horodatages.

CONNEXION: Comment utiliser journalctl pour lire les journaux système Linux

Utilisation de l'utilitaire de journaux GNOME

Les environnements de bureau graphiques incluent généralement un moyen de consulter les journaux. Nous allons examiner l'utilitaire de journaux GNOME. Pour accéder à l'utilitaire de journaux, appuyez sur la touche "Super" à gauche de la "barre d'espacement".

Tapez "journaux" dans le champ de recherche. L'icône "Journaux" apparaît.

Cliquez sur l'icône pour lancer l'application "Journaux".

L'application GNOME Logs

Cliquez sur les catégories dans la barre latérale pour filtrer les messages du journal par type de message. Pour effectuer des sélections plus précises, cliquez sur la catégorie "Tous" dans la barre latérale, puis cliquez sur l'icône de loupe dans la barre d'outils. Entrez un texte de recherche. Nous allons rechercher "sudo".

Recherche d'entrées contenant sudo dans l'application GNOME Logs

La liste des événements est filtrée pour n'afficher que les événements liés à la commande sudo . Un petit bloc gris à la fin de chaque ligne contient le nombre d'entrées dans cette session d'événement. Cliquez sur une ligne pour la développer.

Le bloc gris contenant le nombre d'entrées dans une session sudo

Nous avons cliqué sur la ligne du haut pour voir les détails des 24 entrées de cette session.

Les détails des événements affichés dans une vue développée

Avec un peu de défilement, nous pouvons voir les mêmes événements que nous avons vus lorsque nous avons utilisé la commande journalctl . La session d'édition inexpliquée de l'utilisateur mary sur le fichier fstab est rapidement trouvée. Nous aurions pu rechercher "mary", mais cela inclurait des entrées autres que son utilisation de sudo .

Tout le monde n'a pas besoin d'un accès root

Lorsqu'il existe une exigence réelle et sensée, donner des privilèges sudo à d'autres utilisateurs peut avoir un sens. De même, cela n'a de sens que de vérifier leur utilisation - ou leur abus - de ces pouvoirs, surtout juste après qu'ils les ont reçus.