sudo
지정된 명령에 대해서만 특정 환경 변수를 유지 하도록 지정하는 방법이 있습니까? 어떤 목적을 위해 나는 $HOME
env를 원합니다 . 특정 명령을 실행할 때 변수가 유지됩니다. 다른 목적과 다른 명령을 위해 재설정하고 싶습니다. 이것으로 할 수 있습니까 /etc/sudoers
?
편집하다:
답변 주셔서 감사합니다. 후속 질문을 할 수 있을지 궁금합니다. "왜 왜 작동하지 않습니까?"
내가 일하려고하는 예제 sudo nano
에서 내을 읽고 싶습니다 $HOME/.nanorc
. 이것을 사용하면 :
Defaults:simon env_keep=HOME
완벽하게 작동합니다. 이것을 사용하면 :
Defaults!/bin/nano env_keep=HOME
아니면 이거:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
전혀 작동하지 않습니다. 이유에 대한 제안? (나는 btw 데비안 테스트 중입니다.)
(참고 : nano
btw 는 구체적 이지 않다고 생각합니다 . 간단히 echo
s 한 줄 bash 스크립트로 동작을 재현 할 수 있습니다 $HOME
).
sudo
내 자신의 기능으로 래핑 하고 있기 때문에 if [ "$1" == "$EDITOR" ]; then
블록을 추가하고 sudoedit
대신 대신 호출 하고 있습니다 :)
sudoedit
.sudoedit
파일의 내용을 tmp 파일로 복사하고 사용자가 선택한 편집기를 사용자로 실행합니다. 편집기가 종료되면 변경 사항이 있는지 확인한 다음 원본을 편집 된 내용으로 바꿉니다.$EDITOR
또는 $ VISUAL` env vars를 설정하여 실행할 편집기를 선택할 수 있습니다 .