文件权限如何在OpenShift上运行?

时间:2014-10-09 10:46:01

标签: php cgi openshift file-permissions

我认为我误解了一些关于OpenShift PHP应用程序中文件权限的基本信息。他们如何实际工作?

我在OSX上开发并使用SourceTree推送更改。当我通过SFTP程序(Cyber​​duck)登录应用程序时,index.php文件显示其权限设置为600,但访问者可以在浏览器中查看它。

这令我感到惊讶,因为我认为该文件需要644的权限才能浏览(如Apache网络服务器)。

在OpenShift上,似乎文件权限600,640和644都是等效的。这是正确的,还是我做错了什么?

相关: 我的OpenShift应用程序有一个包含cgi程序的cgi-bin文件夹,该程序只能从PHP文件中执行(调用)。换句话说,任何PHP脚本都应该能够调用这个cgi程序,但是试图直接浏览cgi-bin文件夹的访问者不应该。

我将cgi-bin文件夹和cgi程序文件权限都设置为700(因此只有'所有者'具有读/写/执行集,并且没有为' group&#授予权限39;和'其他人#39;)。但是访问者仍然可以直接浏览程序URL并执行它(例如www.example.com/cgi-bin/program.cgi) - 好像权限是777.我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

我认为您习惯于一个用户拥有所服务文件的系统,并且Web服务器作为另一个用户运行,但由于文件所有者(您的用户帐户是那么大的长哈希)也是在OpenShift上运行Web服务器的进程,然后使用" 6"部分权限,因此您添加的其他两个数字不会产生影响。如果有一个您不希望Web可访问的脚本,但您希望PHP能够执行,那么您应该将它放在包含您的php文件的Web目录之外。最简单的方法是创建一个" php"您的仓库中的文件夹,并将您的文件放在需要Web访问的文件中。这会将您的documentRoot更改为该php目录,并且您可以将脚本放在上面一级,这样用户就无法通过Web请求执行它。