별명을 sudo에 전달하려면 어떻게해야합니까?


38

나는 나의 별칭을 넣어 봤어 ~/.bash_profile, ~/.bashrc, /etc/profile,와 /etc/bashrc.

여전히 다음을 실행할 수 없습니다.

alias zf2="php public/index.php"

그런 다음 다음을 실행하십시오.

sudo zf2 orm:info

문제는 visudo를 사용하는 명령으로 별칭을 지정할 수없는 것 같습니다. 구문 오류가 발생합니다.

그래서 나는 전화 할 수 없습니다 :

sudo zf2 orm:info

그러나 / usr / share / scripts / zf2에 다음을 포함하는 스크립트를 만들 수있었습니다.

#!/bin/bash

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

이 스크립트를 visudo의 명령으로 추가하십시오. 이 스크립트가 최종 사용자의 PATH에 있으면 실행할 수 있습니다.

zf2 orm:info

zf2최종 사용자에게 노출해야하는 것과 같은 다른 별칭이 있습니다. 스크립트 모음 대신 별칭을 유지하고 싶습니다.


1
불행히도 나는 별명으로 별칭을 사용하고 싶지만 불가능합니다.
Michael Niño

2
불가능합니다. 별명은 쉘 (경우에 따라 bash)에 의해 처리되고 응용 프로그램으로 전송되기 전에 확장됩니다. sudo자체는 별명에 대해 아무것도 모릅니다.
Steven

2
@Steven가 기술적으로 정확하기 때문에, 당신은 당신이 단순히 별명을 확장 할 것인지 여부를 명확히해야한다 이전sudo당신이 상승 환경에서 확장 별칭을 할 것인지 라인을 통과하고, 나. Pedantry는 단순히 시선을 유도하는 방법이 아닙니다. (와우, 그러나 그 마지막 문장은 전혀 정결 해 보이지 않습니다.)
can-ned_food


1
함께 사용해보세요sudo -E
Denis de Bernardy

답변:


66

아이러니하게도 해결책은 sudo별칭에서 호출 하는 것입니다.

alias sd="sudo "

참고 : 권장하지는 않지만 별명을 지정할 수 있습니다 sudo.alias sudo="sudo "

배쉬 참조 매뉴얼 (별칭)

별명 값의 마지막 문자가 공백이면 별명 다음에 나오는 다음 명령 단어도 별명 확장을 점검합니다.


7
누군가가 시스템의 기본값으로 이것을하고 싶지 않은 이유를 알 수 있습니다. 높은 특권에보다주의를 기울이는 것과 비교하여 요청 된 편의성과 기대.
Pysis

5
alias sd="sudo "기회?
Nate

내 별칭을 검토 한 결과 alias sudo="sudo "최종 사용자 환경에 없는 것으로 나타났습니다 . 이것이 정답입니다
Michael Niño
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.