允许用户以另一用户身份执行一个命令

允许用户以另一用户身份执行一个命令

目标是让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

相关内容