GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter un alias avec Sudo sous Linux

Je suppose que vous savez déjà comment créer un alias sous Linux. Un alias vous aide à exécuter facilement de longues commandes personnalisées. Vous pouvez rendre l'alias permanent en l'ajoutant à votre bashrc ou au fichier de configuration du shell que vous exécutez sous Linux.

Le problème survient lorsque vous essayez d'exécuter l'alias avec sudo. Vous verrez une erreur comme celle-ci :

sudo: my_alias: command not found

Voici un exemple. J'ai créé un alias up pour la apt update commande. La commande apt update doit être exécutée avec sudo. Mais si j'essaie d'exécuter sudo up , cela donne une erreur :

Vous penserez que puisque vous exécutez en tant qu'utilisateur root, l'alias doit être défini dans le bashrc de l'utilisateur root, c'est-à-dire /.bashrc. Allez-y et essayez-le, mais je parie que cela ne fonctionnera pas.

Laissez-moi vous montrer une petite astuce pour exécuter une commande d'alias avec sudo.

Exécuter la commande alias avec un accès sudo

L'astuce consiste à créer un alias pour sudo lui-même comme ceci :

sudo='sudo '

L'espace (ou la tabulation, si vous préférez) après sudo est important dans le code ci-dessus. Maintenant, si vous exécutez votre commande alias avec sudo, cela devrait fonctionner correctement.

Mais pourquoi? Pourquoi cela fonctionne-t-il maintenant alors que tout ce que vous avez fait était de remplacer la commande sudo par sudo et un espace ? La réponse réside dans la manière dont l'alias est conçu pour être utilisé.

Si vous vous référez à la partie alias du manuel bash, vous verrez que le premier mot de chaque commande simple, s'il n'est pas entre guillemets, est vérifié pour voir s'il a un alias. Si le dernier caractère de la valeur d'alias est un espace ou un caractère de tabulation, le mot de commande suivant l'alias est également vérifié pour l'expansion d'alias.

En d'autres termes, dans une commande, seul le premier mot est vérifié pour l'alias. Mais si la valeur d'alias a un espace ou une tabulation à la fin, le mot suivant de la commande est également vérifié pour un alias.

C'est pourquoi, lorsque vous exécutez simplement la commande sudo my_alias avec l'alias sudo pour 'sudo', le sudo est d'abord vérifié pour l'alias. Un alias est trouvé avec un espace à la fin et ainsi votre système vérifie le mot suivant pour un alias. Il trouve également l'alias pour celui-ci et votre commande aliasée fonctionne comme vous le souhaitez.

J'espère que vous avez aimé cette petite astuce rapide utile pour exécuter un alias avec sudo. Toutes les questions ou suggestions sont toujours les bienvenues.


Linux
  1. Comment installer Vagrant sous Linux

  2. Comment désinstaller Flux sous Linux ?

  3. Exécutez la commande cd en tant que superutilisateur sous Linux

  4. Comment vérifier le mot de passe avec Linux?

  5. Comment exécuter Linux sur PS3 ?

Comment exécuter Windows 95 sous Linux

Comment exécuter des commandes particulières sans mot de passe Sudo sous Linux

Comment créer un alias SSH sous Linux

Comment créer un alias sous Linux

Comment sécuriser les serveurs Linux avec SE Linux

Comment exécuter un audit de sécurité sur AlmaLinux avec Lynis