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