我有兴趣了解目录的正确但安全意识的设置。 这是我的场景:
以上都是非常直接和标准的。
所以我想要一个脚本能够创build(mkdir)和删除(rmdir)目录下的“示例”。 然而,我不想明显地暴露我的服务器通过打开权限(我可以轻松地chmod示例到0777,并使其世界可写)。
什么是权限,所有者设置和/或组设置的最佳组合,以允许我的脚本创build和删除“样本”下的目录,同时保留“用户”继续FTP到目录的能力?
谢谢。
最好的方式是以用户“user”的身份运行脚本。 如果您使用的是Apache,可以使用suEXEC模块完成: http : //httpd.apache.org/docs/2.2/suexec.html 。
要使用PHP,您必须将PHP作为CGI运行。 通常,这意味着禁用mod_php,但最终有一种方法可以在不同的扩展名(例如.cgi或.phpcgi)之间切换mod_php和php-cgi。 还没有尝试过,所以这只是一个想法。
在这样的情况下,我使用PHP的FTP客户端支持来做实际的文件工作。 所以基本上我让PHP正常上传到它可以写入的目录。 然后从那里我使用FTP本地移动文件到适当的位置(validation文件后)。 如果你没有把FTP暴露给外部世界,这是最好的。
这可能已经是你做的,但是,这是一个想法。 如果只能通过FTP访问样本的内容,那么您可以将该目录移到Web服务器的文档根目录之外,并将其与owner = user和group = nobody计划一起使用。 PHP脚本将能够写入,用户将能够使用FTP,外部世界将无法通过Web服务器获取样本。