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


8

한 사용자가 정확히 하나의 비 옵션 인수로 명령을 실행할 수 있도록 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를 사용하여 그렇게 할 수 있습니까? 아니면 도우미 스크립트를 만들어야합니까?


항상 -abc와 같은 집합적인 논쟁입니까? 아니면 다를 수 있습니까?
Mike

[a-z]*이미 내가 원하는 인수입니다. 변수 변수입니다. (테스트 용으로 / bin / echo를 사용합니다.)
Elrond

답변:


8

내가 아는 한, 인수가 다른 경우 명령이 아닌 인수를 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 래퍼를 검색하면 더 많은 예제를 찾을 수 있습니다.

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


2
어쨌든 위생 검사가 있어야합니다. 아무도 믿지 마십시오! [/ paranoid]
Nathan C
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.