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

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

목표는 사용자가 암호를 묻지 않고 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

관련 정보