共享主机上的文件权限

我在共享主机上,并且对文件权限有点困惑:

  • 我的网站目录/ home / user / www由用户拥有:nobody
  • / home / user / www中的所有内容都由用户拥有:user(?)

大多数人会告诉我,我必须做以下事情(总结):

chown -R user:nobody /home/user/www find /home/user/www -type d -exec chmod 750 {} \; find /home/user/www -type f -exec chmod 640 {} \; 

但是我不能'chown'任何东西,因为文件将由用户拥有:user,我不知道应该是什么权限。

我注意到我可以chmod 600一些PHP脚本,而CSS样式表需要是世界可读的..?

在这种情况下,我正在寻找最好的安全方法! 请不要告诉我,我需要转移到一个专用服务器:为什么我会问任何问题呢?

网站www子目录中的文件应该可以通过正在运行的Web服务器的有效用户标识来读取。 Apache Web服务器通常以nobody用户身份运行,无人员或用户www-data,group www-data。 所以这个用户或组需要读取权限。

如果PHP脚本写入文件,则这些文件需要被运行的Apache服务的有效用户标识符写入。

这是如何安排取决于您的托pipe服务提供商。

如果网站是公开的,并且脚本不包含密码,没有可利用的安全漏洞(例如竞赛条件),则可以给世界读取权限。 我的目标是让你的个人用户id拥有所有的文件,而不是用户“nobody”或“user”。 只有你应该对www子目录(和子目录)中的文件拥有写入权限。 即使您的网站不包含任何个人或有价值的数据 – 您也不希望它被欺诈者或垃圾邮件发送者接pipe。

一些有用的资源是