Wie kann ich sudo einen Alias ​​übergeben?

Wie kann ich sudo einen Alias ​​übergeben?

Ich habe versucht, meine Aliase in ~/.bash_profile, ~/.bashrc, /etc/profile, und einzufügen /etc/bashrc.

Folgendes kann ich immer noch nicht ausführen:

alias zf2="php public/index.php"

und führen Sie dann aus:

sudo zf2 orm:info

Das Problem scheint zu sein, dass ich mit visudo-- keinen Alias ​​als Befehl angeben kann, was zu einem Syntaxfehler führt.

Ich kann daher nicht anrufen:

sudo zf2 orm:info

Ich konnte jedoch unter /usr/share/scripts/zf2 ein Skript erstellen, das Folgendes enthält:

#!/bin/bash

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

und füge dieses Skript als Befehl in visudo hinzu. Wenn sich dieses Skript im PATH des Endbenutzers befindet, kann ich es ausführen

zf2 orm:info

Ich habe verschiedene Aliase dieser Art zf2, die ich dem Endbenutzer zugänglich machen muss. Ich würde lieber Aliase pflegen als eine Sammlung von Skripten.

Antwort1

Ironischerweise besteht die Lösung darin, von einem Alias ​​aus anzurufen sudo.

alias sd="sudo "

Hinweis: Obwohl dies nicht empfohlen wird, können Sie den Alias ​​wie folgt benennen sudo:alias sudo="sudo "

Bash-Referenzhandbuch (Aliase)

Wenn das letzte Zeichen des Alias-Wertes ein Leerzeichen ist, wird auch das nächste Befehlswort nach dem Alias ​​auf eine Alias-Erweiterung überprüft.

verwandte Informationen