Como posso passar um apelido para o sudo?

35

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

Ainda não consigo executar o seguinte:

alias zf2="php public/index.php"

e, em seguida, execute:

sudo zf2 orm:info

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

Portanto, 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

Eu tenho diferentes aliases como zf2 que preciso expor ao usuário final. Eu preferiria manter o alias em vez de uma coleção de scripts.

    
por Michael Niño 19.06.2017 / 23:33

1 resposta

65

Ironicamente, a solução é chamar sudo de um alias:

alias sd="sudo "

Nota: embora não seja recomendado, você poderia nomear o alias sudo : alias sudo="sudo "

Bash Reference Manual (Aliases)

If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion.

    
por 19.06.2017 / 23:45

Tags