[server] sudo : 명령에 하나의 인수 만 허용하는 방법?

한 사용자가 정확히 하나의 비 옵션 인수로 명령을 실행할 수 있도록 suoders에 항목을 추가하고 싶습니다.

# tail -1 /etc/sudoers
ALL     ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user:

sudoers sytnax를 사용하여 그렇게 할 수 있습니까? 아니면 도우미 스크립트를 만들어야합니까?



답변

내가 아는 한, 인수가 다른 경우 명령이 아닌 인수를 sudo에 전달할 수 없습니다.

다음과 같이 지정할 수 있습니다.

users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file

이를 통해 사용자는 일부 파일을 테일링 할 수 있지만 다른 파일은 테일링 할 수 없습니다.

변수를 전달해야하는 경우 래퍼 스크립트를 권장합니다.

다음은 rsync 래퍼의 예입니다.

https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo

Google에서 sudo 래퍼를 검색하면 더 많은 예제를 찾을 수 있습니다.

사용자를 신뢰할 수없는 경우 모든 경로를 하드 코딩하고 입력에서 온 전성 검사를 실행해야합니다.


답변