그룹이 루트 권한 및 매개변수를 사용하여 단일 명령을 실행하도록 허용

그룹이 루트 권한 및 매개변수를 사용하여 단일 명령을 실행하도록 허용

웹 서버를 통해 명령을 실행하는 데 문제가 있습니다.

내가 갖고 있는 것과 달성하고 싶은 것: 나는 www-data그룹(sudoer가 아닌)을 사용하여 Apache2 웹 서버를 실행합니다. 웹 서버에서 실행되는 스크립트는 특정 사용자("passthru"를 사용하는 PHP 스크립트)로 명령을 실행해야 합니다.

내가 찾은 한 가지 가능한 방법은 그룹이 www-datasudo로 특정 명령을 실행하도록 허용하는 것입니다(비밀번호도 필요하지 않음). 하지만 다른 사용자로 명령을 실행하려면 루트 권한이 필요합니다. 명령 별칭으로 추가할 수 있나요?

게다가 명령줄 인수/매개변수를 명령에 전달할 수도 있어야 합니다. 참고로 매개변수 중 하나는 -u옵션이기도 합니다.

이것을 달성하는 (더 나은) 방법이 있습니까? 즉, 명령이 하나만 있기 때문입니다.

sudo -u myuser -c "MY_COMMAND WITH CHANGING ARGUMENTS"

내가 아는 또 다른 옵션은 su명령을 사용하는 것입니다. 하지만 이 경우에는 사용자의 도움 없이 서버에서 스크립트를 실행해야 하므로 비밀번호를 "해킹"해야 합니다.

답변1

나는 뻔한 대답을 간과했음에 틀림없다.

sudoers "source" 및 대상 사용자(대신 명령을 실행해야 하는 사용자)에 추가하고 프로그램 경로를 지정합니다. 제 경우에는 사용자 대신 그룹을 사용합니다.

www-data ALL = (mytargetuser) NOPASSWD: /path/to/my/program

이 답변에 설명된 솔루션은 다음과 같습니다.https://unix.stackexchange.com/a/13058

관련 정보