더 많은 권한이 필요하기 때문에 특정 응용 프로그램을 항상 루트로 실행합니다. 저는 보통 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