Actualités
Vitesses plus rapides : bande passante pour vStack Les serveurs au Kazakhstan ont augmenté à 200 Mbps
WB
William Bell
Juin 4 2020
Mise à jour le 28 février 2025

Debian droits de superutilisateur (sudo, visudo)

Debian Linux

Informations générales.

Linux Les systèmes d'exploitation mettent en œuvre le principe de différenciation des privilèges utilisateur, ce qui signifie que différents comptes ont différents droits d'accès aux répertoires, fichiers et programmes. Les droits maximum sont accordés au compte root intégré. Les comptes utilisateurs nouvellement créés sont généralement considérablement limités dans l'accès aux fichiers de configuration du système, la gestion des services et l'installation et la suppression de packages logiciels. Cependant, il est fortement déconseillé de travailler dans le système d'exploitation sous le compte root, principalement pour des raisons de sécurité. Dans ce cas, le sudo L'utilitaire de ligne de commande vient à la rescousse.

La commande sudo permet d'exécuter des commandes individuelles avec des privilèges accrus (par défaut, avec des droits root) à l'aide d'un compte non privilégié. Voyons ce qui est requis pour que cet utilitaire fonctionne.

Installation et configuration

In Ubuntu OS, sudo est activé par défaut, et dans Debian, si le package correspondant n'a pas été sélectionné lors du processus d'installation, l'image suivante sera très probablement :

root@debian10:~# sudo
-bash: sudo: command not found

Vous devez donc installer le package manquant. Mettez à jour les informations du référentiel et installez sudo :

apt-get update
apt-get install sudo

Nous attendons la fin du processus :

Debian superuser rights
Capture d'écran №1. Debian droits de superutilisateur

Après une installation réussie, vous devrez configurer sudo pour déterminer quels utilisateurs ou groupes pourront utiliser l'élévation de privilèges et dans quelle mesure. Tous ces paramètres sont stockés dans le fichier de configuration / etc / sudoers, cependant, il est fortement déconseillé d'y apporter directement des modifications. À ces fins, une commande spéciale est utilisée :

visudo

qui lance un éditeur de texte avec un fichier de configuration :

Text editor with a configuration file
Capture d'écran №2. Éditeur de texte avec un fichier de configuration

Deux lignes sont chargées d'octroyer les droits :

root    ALL=(ALL:ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

La première ligne définit les droits du compte root, la seconde définit les droits des membres du groupe sudo qui a été créé lors de l'installation du paquet (le % signe devant le nom signifie que le nom appartient à un groupe d'utilisateurs).

En conséquence, nous avons deux façons principales d'accorder au compte d'utilisateur le droit d'utiliser sudo:

Ajoutez un compte utilisateur (par exemple user) au groupe sudo sur le serveur :

usermod –a –G sudo user

Après avoir modifié l'appartenance au groupe, vous devrez vous reconnecter à ce compte pour appliquer la nouvelle configuration. Cette méthode est recommandée dans les cas où l'utilisateur doit disposer de tous les droits.

Créez une nouvelle entrée dans le fichier, par exemple, pour le compte d'utilisateur. Nous ajoutons une ligne similaire à root :

user ALL=(ALL:ALL) ALL

L'ajout d'une nouvelle entrée est recommandé dans les cas où la liste des privilèges sera ajustée (plus à ce sujet plus tard). Si nous avons apporté des modifications au fichier, nous devons les enregistrer en appuyant sur le raccourci clavier Ctrl-O et quitter l'éditeur - Ctrl-X.

Vous pouvez maintenant vérifier le bon fonctionnement :

user@debian10:~$ sudo cat /etc/sudoers
[sudo] password for user:

La commande sudo demande le mot de passe de l'utilisateur actuel (dans ce cas, l'utilisateur) - entrez-le, et si tout est fait correctement, nous verrons le contenu du fichier de configuration système.

Réglage fin

Ainsi, un utilisateur ordinaire peut exécuter des commandes avec les droits du compte root sans connaître son mot de passe. C'est très pratique, mais cela peut être dangereux - est-il possible de limiter la plage de commandes pouvant être exécutées à l'aide de sudo ? Oui, et le même fichier de configuration nous y aidera. Nous redémarrons visudo et nous comprenons mieux. Nous nous intéressons aux paramètres spécifiés après le nom d'utilisateur :

Parameters specified after the username
Capture d'écran n°3. Paramètres spécifiés après le nom d'utilisateur

Nous allons les analyser plus en détail :

  • TOUTES= (ALL: ALL) ALL - le premier paramètre détermine à quel hôte la configuration est appliquée. Lorsque vous utilisez un serveur dédié, le paramètre peut rester inchangé ;
  • TOUS=(TOUS : TOUS)ALL - les paramètres entre parenthèses déterminent l'autorité de l'utilisateur (premier paramètre) et/ou du groupe (second paramètre) sur lequel la commande sera exécutée. Par défaut, sudo exécute la commande en tant que root, mais lors du démarrage avec le commutateur –u, vous pouvez spécifier un compte différent, et avec le commutateur –g, vous pouvez spécifier un autre groupe dont les privilèges seront utilisés au démarrage ;
  • TOUT=(TOUT : TOUT)TOUTES- le troisième paramètre détermine à quels fichiers et commandes appartiennent ces paramètres.

Sur la base de ce qui précède, si nécessaire, déterminez la liste des commandes autorisées, remplacez le dernier paramètre TOUTES avec ce dont nous avons besoin, en listant les commandes séparées par des virgules. Par exemple, la ligne :

user    ALL=(ALL:ALL) /sbin/shutdown –r, /bin/cat

donne à l'utilisateur le droit d'utiliser sudo pour redémarrer le serveur avec sudo /sbin/shutdown –r et afficher les fichiers avec sudo /bin/cat. Les autres commandes via sudo ne seront pas exécutées. Par exemple, lorsque vous essayez d'arrêter le serveur avec la commande sudo /sbin/shutdown –h, nous obtenons la réponse :

Sorry, user user is not allowed to execute '/sbin/shutdown -h' as root on debian10.

Information

Vous pouvez voir la liste des privilèges en exécutant sudo –l (la liste de l'utilisateur actuel s'affichera) ou sudo –l –U user (la liste des privilèges de l'utilisateur s'affichera) :

The list of user privileges
Capture d'écran №4. La liste des privilèges des utilisateurs

La composition de sudo inclut la commande sudoedit, qui lance immédiatement un éditeur de texte avec le fichier spécifié avec des privilèges élevés, c'est-à-dire au lieu de la commande :

sudo nano /etc/network/interfaces

peut courir:

sudoedit /etc/network/interfaces

Si vous devez travailler en mode privilège élevé pendant une longue période et qu'il n'est pas pratique d'entrer sudo pour chaque commande, vous pouvez exécuter une instance de l'interpréteur de commandes via sudo :

sudo bash

et continuez à y travailler - toutes les équipes seront lancées avec des droits élevés. Une fois terminé, quittez l'interpréteur avec la commande exit.

Voter:
5 sur 5
Note moyenne : 5
Noté par : 3
1101 CT Amsterdam Pays-Bas, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300
Nous utilisons des cookies pour rendre votre expérience sur le Serverspace meilleur. En poursuivant votre navigation sur notre site, vous acceptez nos
Utilisation des cookies et Politique de confidentialité.