Jak mogę przekazać alias do sudo?


38

Próbowałem oddanie moje aliasy w ~/.bash_profile, ~/.bashrc, /etc/profile, i /etc/bashrc.

Nadal nie mogę wykonać następujących czynności:

alias zf2="php public/index.php"

a następnie wykonaj:

sudo zf2 orm:info

Problem polega na tym, że nie jestem w stanie podać aliasu jako polecenia za pomocą visudo - co powoduje błąd składniowy.

Nie mogę więc zadzwonić:

sudo zf2 orm:info

Udało mi się jednak utworzyć skrypt w / usr / share / scripts / zf2, który zawiera:

#!/bin/bash

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

i dodaj ten skrypt jako polecenie w visudo. Gdy ten skrypt znajduje się w ścieżce użytkownika końcowego, jestem w stanie go wykonać

zf2 orm:info

Mam różne aliasy, zf2które muszę udostępnić użytkownikowi końcowemu. Wolałbym zachować alias zamiast zbioru skryptów.


1
Niestety chcę używać aliasów w visudo i nie jestem w stanie.
Michael Niño

2
Nie jest możliwe. Aliasy są obsługiwane przez powłokę (w twoim przypadku bash) i rozwijane przed wysłaniem do aplikacji. sudosam nic nie wie o aliasach.
Steven

2
Ponieważ @Steven jest technicznie poprawne, należy wyjaśnić, czy po prostu chcesz poszerzyć aliasów przed do sudopodjęcia linię, czy chcesz aliasy rozszerzony w podwyższonej środowiska. Pedanteria to nie tylko sposób na wywołanie przewracania oczami. (Wow, ale to ostatnie zdanie wcale nie wygląda na koszerne.)
can-ned_food


1
Wypróbuj zsudo -E
Denis de Bernardy

Odpowiedzi:


66

Jak na ironię, rozwiązaniem jest połączenie sudoz aliasu.

alias sd="sudo "

Uwaga: Chociaż nie jest to zalecane, możesz nazwać alias sudo:alias sudo="sudo "

Podręcznik referencyjny Bash (aliasy)

Jeśli ostatni znak wartości aliasu jest pusty, to następne słowo polecenia następujące po aliasie jest również sprawdzane pod kątem rozszerzenia aliasu.


7
Mogę zobaczyć powody, dla których ktoś chciałby i nie chciałby, aby było to ustawienie domyślne dla dowolnego systemu. Wygoda i oczekiwanie zgodnie z oczekiwaniami, a nie bycie ostrożniejszym z podwyższonymi uprawnieniami.
Pysis

5
alias sd="sudo "maychance?
The Nate

Po przejrzeniu moich aliasów zauważyłem, że nie mam ich alias sudo="sudo "w środowisku użytkowników końcowych. Oto odpowiedź
Michael Niño
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.