Comment examiner l'utilisation de la commande sudo sous Linux
Publié: 2022-08-24
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é.
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
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".
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"
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
Les entrées de journal qui comportent sudo
sont répertoriées dans 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.)
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".
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".
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.
Nous avons cliqué sur la ligne du haut pour voir les détails des 24 entrées de cette session.
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.