2017-04-19 19 views
0

我需要从可从php网页访问的脚本调用postfix reloadpostfix reload需要超级用户权限。我可以使用echo "password" | sudo ...但我不想给超级用户权限给一个可以从apache访问的脚本,也不用在明文中写入密码。你怎么称呼这样的命令而不产生安全问题?像ISPConfig这样的软件如何解决这一需求?如何从没有sudo的脚本调用超级用户命令

+2

您可以将'sudo'配置为允许任何用户'apache'运行,而无需输入密码即可运行* specific *命令。如何做到这一点是堆栈溢出有点偏离;尝试superuser.com。 – chepner

+0

我的建议是将Web服务与服务重新加载任务分离。 1001种不同的方式来做到这一点,同时,我不会对我的生产Web服务器执行特权命令的直接行动/反应。 –

回答

1

运行Apache的用户(例如.apache)必须被允许在没有密码的情况下执行“sudo postfix reload”。要做到这一点,你需要添加 下面一行“的/ etc/sudoers文件”文件:

apache ALL = NOPASSWD: /path/to/postfix reload 

我建议在脚本中使用“须藤/路径/到/后缀重装”,因为后缀的文件可能不在apache用户的默认路径中。

关于安全性,您需要确保此命令不会经常启动,因为它可能会导致性能问题。 由于命令指定了一个参数,即使您的网站会被攻破,postfix重新加载也只会执行一个特定的操作,而不会改变该行为(只要sudo和postfix是up2date)。

相关问题