【发布时间】:2015-10-28 21:10:20
【问题描述】:
我的网站位于共享主机上。我一直在使用 FTP 和 PHP 文件管理器来上传和删除文件。最近我发现了一个由于权限而无法删除的文件,无论是在 PHPFM 中还是在 FTP 中。所以我使用 DirectAdmin(我计划的唯一选项)来重置所有权限。然后我将 public_html 和子文件夹中所有文件的所有权限递归设置为 777。我只知道它允许我做的比任何其他权限变体都多。
现在站点以静态方式运行,我可以打开 PHP 文件管理器,它没有上传文件的权限。但是,我可以在 DirectAdmin 中上传文件,但这感觉不安全。 PHP 文件管理器显示:“I/O 错误”。目录如下所示:
1422 和 1420 是什么意思?我该怎么做才能再次上传文件?谢谢你的帮助。
【问题讨论】:
-
1422 是你的 linux user_id 和 1420 group_id。
-
设置 777 并在服务器中使用文件管理器脚本是一个相当严重的风险,特别是如果文件夹权限设置为 777... 你的 php 文件管理器在哪里?它是否能够访问该文件夹以及要从其所在位置添加/修改/删除的文件?
-
1422 和 1420 是所有者和组 ID,很可能它们不是 root 用户。如果您将所有内容都设置为 777(包括文件夹),通常这些 id 无关紧要...也可能是 php.ini 上的设置禁止上传输入,您的主机可能已更改它...
-
您是用户 1422,属于组 1420。现在您拥有完全权限。
-
安全的做法是将文件设置为 644 和文件夹 755。这使您拥有更改文件和写入目录的唯一权限,但保留其他所有人的读取权限。 Apache 通常以另一个用户身份运行,因此您必须授予它读取文件和目录的权限。
标签: php apache permissions