我正在我所在大学提供的网络空间上建立一个简单的网站。我没有数据库访问权限,因此我将所有数据存储在一个平面文件中。我遇到的问题与文件权限有关。我需要 PHP 能够读取和写入数据文件,但我真的不想将文件设置为 777,因为系统上的任何其他人都可以修改它,他们已经拥有每个人的网络目录的读取权限。有人知道如何实现这一点吗?
提前致谢
答案1
只需设置 0755(或更低),但要确保目录所有者是 apache(或其他 Web 服务器)在上下文中运行的用户。
例如
chown apache:apache /var/www/html
例如,您可以使用 phpinfo() 获取有关用户的信息。
更新
如果你与更多网站共享 Apache,那么你应该通过以下方式分离你的内容:每个用户的 Web 目录
答案2
您可以使用苏普来完成此任务。如果您可以使用它,则只需将文件权限更改为 0700,一切就会按您想要的方式进行。
答案3
理想的情况是,如果服务器上的文件系统支持 posix acls,那么您可以为 Web 服务器运行的 uid 添加对某些文件的写访问权限。
并且您有足够的文件系统访问权限(最好通过 shell 帐户)来设置 acl 权限。
请参阅 man acl 了解概述,请参阅 man setfacl 了解如何设置它们的详细信息。
答案4
您可以使用以下命令设置读/写权限:
sudo chown www-data PATH
如果www-数据不存在,你可以用以下方式替换阿帕奇:阿帕奇或者阿帕奇。