我刚刚从 12.04 迁移到 14.04。14.04(明智地)禁用了 www-data 的登录/shell。但我的 php 网站需要运行一些 shell 脚本来运行 kindlegen 之类的东西,根据用户命令将文件 rsyncing 到另一台服务器等。
做到这一点的最佳(最安全)方法是什么?
谢谢
答案1
听起来你处于安全模式。这很好,但它确实让你可以选择允许某些命令(如果它们在safe_mode_exec_dir
。这是我首先要考虑的事情。创建一个目录,将脚本添加到其中,设置safe_mode_exec_dir
到该目录,然后查看它是否运行。
编辑:嗯,如果你使用的是 14.04,那么它可能不是安全模式。该模式在 5.4 中被删除,你应该使用 5.5
如果这不起作用或不可行,请考虑使用非交互式方法。让您的 PHP 写入一个名为的文件needstorun
,然后让另一个脚本(以另一个用户的身份运行)定期检查该文件。我会使用这样的 cron 行(crontab -e
以将要运行的用户身份运行)
*/5 * * * * [ -f /path/to/needstorun ] && rm /path/to/needstorun && /path/to/script
这显然只会为您提供一种交错的方法,但这可能不是一个坏主意。