如何从没有sudo的脚本调用超级用户命令

时间:2017-04-19 13:02:04

标签: bash apache superuser

我需要从php网页上可以访问的脚本中调用postfix reloadpostfix reload需要超级用户权限。我可以使用echo "password" | sudo ...来完成它但是我不想为从apache访问的脚本授予超级用户权限,也不想用明文写入密码。如何在不产生安全问题的情况下调用此类命令?像ISPConfig这样的软件如何解决这个需求呢?

1 个答案:

答案 0 :(得分:1)

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

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

我建议在脚本中使用'sudo / path / to / postfix reload',因为postfix文件可能不在apache用户的默认路径中。

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