사용자가 다른 사용자로서 명령을 실행할 수 있도록 허용

사용자가 다른 사용자로서 명령을 실행할 수 있도록 허용

목표는 www-data사용자가 sudo -u postgres -H osm2pgsql [some options here]비밀번호를 입력하지 않고도 실행할 수 있도록 하는 것입니다(이는 자동으로 실행되는 스크립트의 일부이므로).

sudoers파일의 다음 줄을 사용하면 이 작업을 수행할 수 있을 것 같습니다.

www-data ALL=NOPASSWD: /usr/bin/sudo -u postgres -H osm2pgsql *

그러나 이것은 작동하지 않는 것 같습니다. 내가 뭘 잘못했나요?

답변1

필요한 구문은 다음과 같습니다.

Defaults:www-data !requiretty
www-data ALL=(postgres) NOPASSWD: /usr/bin/osm2pgsql

이는 /usr/bin/osm2pgsql실제 경로로 대체되어야 합니다 osm2pgsql. 이 !requiretty줄을 사용하면 터미널 없이 스크립트에서 sudo를 실행할 수 있습니다. 이렇게 하면 모든 옵션이 포함된 명령이 sudo -u postgres -H osm2pgsql작동할 수 있습니다.

답변2

노력하다:

www-data ALL=NOPASSWD: /path/to/osm2pgsql

관련 정보