나는 이런 식으로 sudo를 허용하고 싶다:
myuser ALL=NOPASSWD:/usr/bin/pkill -fx "/usr/sbin/nethogs -v 3 -s" || /usr/sbin/nethogs -v 3 -s
그래서 실행 중인 nethogs 인스턴스만 얻습니다.
visudo는 이를 수락하지만 비밀번호 없이는 명령을 실행할 수 없습니다...
실패한 시도:
sudo '/usr/bin/pkill -fx "/usr/sbin/nethogs -v 3 -s" || /usr/sbin/nethogs -v 3 -s'
sudo /usr/bin/pkill -fx "/usr/sbin/nethogs -v 3 -s" || sudo /usr/sbin/nethogs -v 3 -s
추신: 이 버전의 nethogs는 sf.net의 cvs를 기반으로 컴파일되었습니다.
답변1
파일에서는 프로그램이나 스크립트의 이름이나 경로(및 선택적 매개변수)만 사용할 수 있습니다. sudoers
유사한 셸 구성은 ||
작동하지 않습니다.
인용하다 man sudoers
:
command name ::= file name |
file name args |
file name '""'
이 문제를 해결하는 가장 쉬운 방법은 일련의 명령을 실행하는 스크립트를 생성하고 루트만 쓸 수 있도록 설정한 후 pass 를 부여하는 것입니다 sudo
.
sudo
맨페이지에는 실제로 하위 쉘에서 명령을 실행하는 예가 나와 있지만 구성 에서 이를 허용하는 방법을 찾지 못했습니다 .sudoers
sudo 사용자 메일링 리스트) .