在PHP上写入权限问题

时间:2013-09-06 16:25:09

标签: php linux apache permissions centos

我遇到的问题是apache无法通过PHP写文件(例如,写csv文件) - 我必须将文件权限更改为777并且它可以正常工作,但安全性非常差。我试图使用足够的权限来写,也许是664.出了什么问题?

Apache正在apache上运行,而群组也是apache/var/www/html中的所有文件归root用户所有,并且组为web-content

我可以登录到FTP客户端并将文件读/写到/var/www/html,没有任何问题。

我创建了一个名为intranet的ftp用户,这就是我所做的:

groupadd web-content
usermod -G web-content intranet
chown root:web-content /var/www/html
chmod o+rx /var/www/html
find /var/www/html -type f -exec chmod 0664 {} \;
find /var/www/html -type d -exec chmod 0775 {} \;

ls -la / var / www /

drwxrwxr-x.  4 root web-content 4.0K Sep  6 16:09 html

当我在FTP上传新文件时。

ls -la / var / www / intranet /

-rw-r--r--.  1 intranet intranet       0 Sep  6 17:42 test

1 个答案:

答案 0 :(得分:2)

7 - owner bits, read/write/execute
5 - group bits, read/execute
5 - everyone else bits, read/execute

由于文件是755,因此只有所有者具有写入权限。您已将apache作为apache运行,并且该文件归root所有,因此所有者不匹配,并且您最终没有写入权限。

您可能希望将文件命名为apache:web-content或至少root:web-content,然后将文件设为575,以便组权限匹配。