
추가 인수 없이 특정 명령만 실행할 수 있는 sudoers 항목을 갖는 방법이 있습니까? sudoer에서 명령 일치가 작동하는 방식을 설명하는 리소스를 찾을 수 없는 것 같습니다.
에 대해 sudo를 부여하고 싶다고 가정해 보겠습니다 /path/to/executable arg
.
다음과 같은 항목을 수행합니다.
user ALL=(ALL) /path/to/executable arg
정확히 일치하는 명령에 대한 sudo 액세스를 엄격히 허용합니까? 즉, 사용자에게 /path/to/executable arg arg2
? 에 대한 sudo 권한을 부여하지 않습니다.
답변1
man sudoers
Cmnd_List 정의 근처 에서 다음을 찾습니다 .
A simple filename allows the user to run the command with any arguments
he/she wishes. However, you may also specify command line arguments
(including wildcards). Alternately, you can specify "" to indicate
that the command may only be run without command line arguments.
이는 "arg"를 구체적으로 허용하면 "arg arg2"가 허용되지 않음을 의미하는 것 같습니다. 반면에 sudoers 파일이 서로 다른 OS(예: Linux 및 Solaris)에서 처리되는 방식에 약간의 불일치가 있음을 확인했습니다. 따라서 자신의 환경에 대해 테스트해야 합니다.
다소 추악한 해결 방법 중 하나는 원하는 인수만 사용하여 지정된 명령을 실행하는 별도의 실행 가능한 스크립트를 만들고 원래 명령 대신 해당 스크립트에 sudo 액세스 권한을 부여하는 것입니다.
#!/bin/bash
/path/to/executable arg