web-dev-qa-db-fra.com

Comment puis-je passer un alias à sudo?

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

Je n'arrive toujours pas à exécuter ce qui suit:

alias zf2="php public/index.php"

puis exécutez:

Sudo zf2 orm:info

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

Je suis donc incapable d'appeler:

Sudo zf2 orm:info

Cependant, j'ai pu créer un script dans/usr/share/scripts/zf2 qui contient:

#!/bin/bash

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

et ajoutez ce script en tant que commande dans visudo. Quand ce script est dans le chemin de l'utilisateur final, je peux exécuter

zf2 orm:info

J'ai différents alias comme zf2 que je dois exposer à l'utilisateur final. Je préférerais conserver un alias plutôt qu'une collection de scripts.

37
Michael Niño

Ironiquement, la solution consiste à appeler Sudo à partir d'un alias.

alias sd="Sudo "

Remarque: Bien que cela ne soit pas recommandé, vous pouvez nommer l'alias Sudo: alias Sudo="Sudo ".

Manuel de référence Bash (pseudonymes)

Si le dernier caractère de la valeur d'alias est vide, la commande suivante Word suivant l'alias est également vérifiée pour son développement.

66
Steven