sudo를 사용하여 명령을 실행하기 위한 별칭

sudo를 사용하여 명령을 실행하기 위한 별칭

더 많은 권한이 필요하기 때문에 특정 응용 프로그램을 항상 루트로 실행합니다. 저는 보통 sudo만 사용합니다. 다음과 유사한 별칭을 만들고 싶습니다. alias myCmd='sudo nohup /path/to/binary > /dev/null 2>&1 &'

문제는 sudo에서 비밀번호를 묻는 메시지를 표시하지만 실제로 아무 일도 일어나지 않을 때 발생합니다. 어떻게 하나요?

답변1

별칭 대신 쉘 스크립트를 사용하십시오.

~/.bashrc에서:

export PATH="$PATH":~/bin

스크립트는 ~/bin/run에 있습니다.

#!/bin/bash
sudo nohup /path/to/binary > /dev/null 2>&1 &

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

$ runthat

또는 PATH 단계를 건너뛴 경우 다음과 같이 실행합니다.

$ ~/bin/runthat

이것이 귀하의 스크립트가 아닌 시스템 전체(모든 사용자) 스크립트인 경우 /usr/local/bin에 넣으십시오.

아니면 함수를 사용할 수도 있습니다. 예를 들어. ~/.bashrc에서:

runthat() {
    sudo nohup /path/to/binary > /dev/null 2>&1 &
}

또한 질문에 대한 직접적인 대답이 아닌 참조용으로, 또 다른 옵션은 이것을 sudoers 파일에 넣는 것입니다.

sudo visudo
    (your editor pops up here)
    username ALL=NOPASSWD: /path/to/binary

이제 비밀번호를 전혀 묻지 않습니다. (이것은 덜 안전하다는 것을 의미합니다. 아마도 일부 보안 허점으로 인해 이제 악성 코드가 이 앱을 실행할 수도 있습니다... 따라서 이 작은 위험을 감수해야 합니다.)

답변2

~/.bashrc 하단에 추가하세요.

alias sudo="sudo " # space after sudo

관련 정보