Android

Commande Sudo sous Linux

les commandes su et sudo - Ep. #2

les commandes su et sudo - Ep. #2

Table des matières:

Anonim

La commande sudo vous permet d'exécuter des programmes en tant qu'autre utilisateur, par défaut l'utilisateur root. Si vous passez beaucoup de temps sur la ligne de commande, sudo est l'une des commandes que vous utiliserez assez fréquemment.

L'utilisation de sudo au lieu de vous connecter en tant que root est plus sûre car vous pouvez accorder des privilèges administratifs limités à des utilisateurs individuels sans qu'ils connaissent le mot de passe root.

Dans ce tutoriel, nous expliquerons comment utiliser la commande sudo .

Installation de Sudo (commande sudo introuvable)

Le package sudo est préinstallé sur la plupart des distributions Linux.

Pour vérifier si le package sudo est installé sur votre système, ouvrez votre console, tapez sudo et appuyez sur Enter . Si vous avez installé sudo, le système affichera un court message d'aide, sinon vous verrez quelque chose comme la sudo command not found .

Si sudo n'est pas installé, vous pouvez facilement l'installer en utilisant le gestionnaire de paquets de votre distribution.

Installer Sudo sur Ubuntu et Debian

apt install sudo

Installer Sudo sur CentOS et Fedora

yum install sudo

Ajout d'un utilisateur à Sudoers

Par défaut sur la plupart des distributions Linux, accorder l'accès à sudo est aussi simple que d'ajouter l'utilisateur au groupe sudo défini dans le fichier sudoers . Les membres de ce groupe pourront exécuter n'importe quelle commande en tant que root. Le nom du groupe peut différer d'une distribution à l'autre.

Sur les distributions basées sur RedHat telles que CentOS et Fedora, le nom du groupe sudo est wheel . Pour ajouter l'utilisateur à l'exécution de groupe:

usermod -aG wheel username

Sur Debian, Ubuntu et leurs dérivés, les membres du groupe sudo bénéficient d'un accès sudo:

usermod -aG sudo username

Le compte d'utilisateur root dans Ubuntu est désactivé par défaut pour des raisons de sécurité et les utilisateurs sont encouragés à effectuer une tâche d'administration système à l'aide de sudo. L'utilisateur initial créé par le programme d'installation d'Ubuntu est déjà membre du groupe sudo, donc si vous exécutez Ubuntu, il est probable que l'utilisateur sous lequel vous êtes connecté dispose déjà des privilèges sudo.

Par exemple, pour permettre à l'utilisateur linuxize d'exécuter uniquement la commande mkdir tant que sudo, tapez:

sudo visudo

et ajoutez la ligne suivante:

linuxize ALL=/bin/mkdir

Sur la plupart des systèmes, la commande visudo ouvre le fichier /etc/sudoers avec l'éditeur de texte vim. Si vous n'avez pas d'expérience avec vim, consultez notre article sur la façon d'enregistrer un fichier et de quitter l'éditeur vim.

Vous pouvez également autoriser les utilisateurs à exécuter des commandes sudo sans entrer de mot de passe:

linuxize ALL=(ALL) NOPASSWD: ALL

Comment utiliser Sudo

La syntaxe de la commande sudo est la suivante:

sudo OPTION.. COMMAND

La commande sudo possède de nombreuses options qui contrôlent son comportement, mais généralement sudo est utilisé dans sa forme la plus élémentaire, sans aucune option.

Pour utiliser sudo, préfixez simplement la commande avec sudo :

sudo command

command est la commande pour laquelle vous souhaitez utiliser sudo.

Sudo lira le fichier /etc/sudoers et vérifiera si l'utilisateur /etc/sudoers est autorisé à utiliser sudo assess. La première fois que vous utilisez sudo dans une session, vous serez invité à entrer le mot de passe utilisateur et la commande sera exécutée en tant que root.

Par exemple, pour répertorier tous les fichiers du répertoire /root , vous utiliseriez:

sudo ls /root

password for linuxize:….bashrc.cache.config.local.profile

Délai d'expiration du mot de passe

Par défaut, sudo vous demandera de saisir à nouveau votre mot de passe après cinq minutes d'inactivité sudo. Vous pouvez modifier le délai d'expiration par défaut en modifiant le fichier sudoers . Ouvrez le fichier avec visudo :

sudo visudo

Définissez le délai d'expiration par défaut en ajoutant la ligne ci-dessous, où 10 est le délai spécifié en minutes:

Defaults timestamp_timeout=10

Defaults:user_name timestamp_timeout=10

Exécuter une commande en tant qu'utilisateur autre que root

Il y a une perception erronée que sudo est utilisé uniquement pour fournir des autorisations root à un utilisateur normal. En fait, vous pouvez utiliser sudo pour exécuter une commande en tant que n'importe quel utilisateur.

L'option -u vous permet d'exécuter une commande en tant qu'utilisateur spécifié.

Dans l'exemple suivant, nous utilisons sudo pour exécuter la commande whoami tant qu'utilisateur «richard»:

sudo -u richard whoami

La commande whoami affichera le nom de l'utilisateur exécutant la commande:

richard

Comment rediriger avec Sudo

sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permission denied

Cela se produit car la redirection « > » de la sortie est effectuée sous l'utilisateur auquel vous êtes connecté, et non pas l'utilisateur spécifié par sudo. La redirection a lieu avant l' sudo commande sudo .

Une solution consiste à invoquer un nouveau shell en tant que root en utilisant sudo sh -c :

sudo sh -c 'echo "test" > /root/file.txt'

Une autre option consiste à diriger la sortie en tant qu'utilisateur normal vers la commande tee comme indiqué ci-dessous:

echo "test" | sudo tee /root/file.txt

Conclusion

Vous avez appris à utiliser la commande sudo et à créer de nouveaux utilisateurs avec des privilèges sudo.

terminal sudo