Como posso passar um alias para o sudo?

Como posso passar um alias para o sudo?

Eu tentei colocar meus aliases em ~/.bash_profile, ~/.bashrc, /etc/profilee /etc/bashrc.

Ainda não consigo executar o seguinte:

alias zf2="php public/index.php"

e então execute:

sudo zf2 orm:info

O problema parece ser que não consigo especificar um alias como comando usando visudo - o que causa um erro de sintaxe.

Então não consigo ligar:

sudo zf2 orm:info

No entanto, consegui criar um script em /usr/share/scripts/zf2 que contém:

#!/bin/bash

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

e adicione este script como o comando no visudo. Quando este script está no PATH do usuário final, posso executar

zf2 orm:info

Tenho aliases diferentes zf2que preciso expor ao usuário final. Eu preferiria manter o alias em vez de uma coleção de scripts.

Responder1

Ironicamente, a solução é ligar sudode um alias.

alias sd="sudo "

Observação: embora não seja recomendado, você pode nomear o alias sudo:alias sudo="sudo "

Manual de referência do Bash (aliases)

Se o último caractere do valor do alias estiver em branco, a próxima palavra de comando após o alias também será verificada quanto à expansão do alias.

informação relacionada