Permitir al usuario ejecutar un comando como otro usuario

Permitir al usuario ejecutar un comando como otro usuario

El objetivo es permitir que el www-datausuario ejecute sudo -u postgres -H osm2pgsql [some options here]sin que se le solicite una contraseña (ya que esto será parte de un script que se ejecuta automáticamente).

Pensé que podría hacerlo con la siguiente línea en sudoersel archivo.

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

Pero esto no parece funcionar. ¿Qué estoy haciendo mal?

Respuesta1

La sintaxis que necesitas es

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

donde /usr/bin/osm2pgsqldebería ser reemplazado por la ruta real de osm2pgsql. La !requirettylínea permite el sudo desde un script sin terminal. Esto permite sudo -u postgres -H osm2pgsqlque funcione el comando con cualquier opción.

Respuesta2

Intentar:

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

información relacionada