41 votes

Comment puis-je passer un alias à sudo?

J'ai essayé de mettre mes alias dans ~/.bash_profile, ~/.bashrc, /etc/profile et /etc/bashrc.

Je suis toujours incapable d'exécuter ce qui suit :

alias zf2="php public/index.php"

et ensuite exécuter :

sudo zf2 orm:info

Le problème semble être que je ne peux pas spécifier un alias en tant que commande en utilisant visudo - ce qui provoque une erreur de syntaxe.

Donc je ne peux pas appeler :

sudo zf2 orm:info

Cependant, j'ai réussi à créer un script à /usr/share/scripts/zf2 qui contient :

#!/bin/bash

alias zf2="php public/index.php"
zf2 $1

et ajouter ce script comme commande dans visudo. Lorsque ce script est dans le PATH de l'utilisateur final, je suis capable d'exécuter

zf2 orm:info

J'ai différents alias comme zf2 que je dois exposer à l'utilisateur final. Je préférerais conserver les alias au lieu d'une collection de scripts.

71voto

Matt Joiner Points 1559

Ironiquement, la solution est d'appeler sudo à partir d'un alias.

alias sd="sudo "

Note : Bien que ce ne soit pas recommandé, vous pourriez nommer l'alias sudo : alias sudo="sudo "

Manuel de référence Bash (Alias)

Si le dernier caractère de la valeur de l'alias est un espace, alors le mot de commande suivant l'alias est également vérifié pour l'expansion de l'alias.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X