文件权限定义了谁可以读取、修改或执行您主机账户中的文件和文件夹。正确的权限对于维护网站安全以及cPanel账户和托管网站的正常功能至关重要。
在基于Linux的主机服务器(cPanel使用)上,每个文件和文件夹都有一个所有者、一个组,以及一组权限规则。
权限决定了以下对象允许执行哪些操作:
用户(所有者)- 您的cPanel账户
组- 服务器级别的组
其他/所有人- 服务器上的其他所有人
每个对象对文件和目录都可以有三种访问类型:
读取 (r) - 允许查看文件内容 / 列出文件夹内文件
写入 (w) - 允许修改文件 / 在文件夹内添加或删除文件
执行 (x) - 允许运行文件(脚本、应用程序)/ 进入 / 访问文件夹
注意:文件夹必须具有执行 (x)权限才能被访问。
访问级别也可以用数字来定义:
0 - 无法访问文件
1 - 仅可执行
2 - 仅可写
3 - 可写和可执行
4 - 仅可读
5 - 可读和可执行
6 - 可读和可写
7 - 可读、可写和可执行(完全权限)
示例:最常见的755和644
所有者:7 - 可读、可写、可执行
组:5 - 可读、可执行
其他:5 - 可读、可执行
所有者:6 - 可读、可写
组:4 - 可读
其他:4 - 可读
为确保您的网站文件能在浏览器中正确显示,我们建议使用以下权限设置:
HTML和图片文件应设置为644 (0644)——这允许所有用户读取文件,但只有账户所有者可以修改。这些权限通常在文件创建时自动应用。
文件夹应设置为755 (0755)——这允许其他人读取和访问文件夹内容,但只有账户所有者可以修改。这些权限通常在文件夹创建时自动分配。
CGI文件(通常位于cgi-bin文件夹中)应设置为755 (0755)。这允许其他人读取和执行文件,但只有账户所有者可以修改。这些权限并不总是自动设置,可能需要手动调整。
注意事项:
避免将权限设置为777,因为这会带来严重的安全风险。
错误的权限设置可能会极大地削弱您的主机账户安全,使未授权用户能够修改您的文件、暴露敏感配置数据,并增加恶意软件感染的风险。
从网站功能角度看,不正确的权限可能导致500内部服务器错误、“403权限被拒绝”错误、媒体上传失败、插件或主题安装问题等。
权限可以通过三种主要方式修改:使用文件管理器(在cPanel中)、SSH(命令行)或定时任务(cron job)(自动执行命令)。每种方法适用于不同的场景。
文件管理器
当您需要更改一个或少数文件/文件夹的权限时很有用。
登录您的cPanel账户,进入文件部分,打开文件管理器菜单。
或者在主机管理器中,点击管理旁边的主机方案,进入文件与存储,点击管理文件在网站名称旁边。您将被重定向到文件管理器中的域根文件夹。
您将在右侧名为权限的列中看到当前权限:

要编辑某个文件/文件夹的当前权限,只需点击一次文件权限,设置所需数字,然后按保存(或回车):

还可以通过右键点击文件/文件夹并选择更改权限选项来修改权限。会弹出相关窗口:

调整复选框并点击更改权限以保存。
提示:使用文件管理器上方菜单中的权限选项时也会打开同样的设置表:

SSH命令行
SSH允许您使用chmod 命令修改权限。当您需要更改大量文件的权限时,此方法很有用。
通过SSH访问您的主机账户。
接下来,使用以下命令导航到您的域根目录:cd /home/username/root_folder
注意:请务必将username替换为您的实际cPanel用户名,将root_folder替换为您的域名对应的正确目录名:

运行以下命令将目录权限设置为0755,文件权限设置为0644:find ./ -type f -not -perm 644 -not -name ".ftpquota" -exec chmod 644 -c {} \;; find ./ -type d -not -perm 755 -not -group nobody -exec chmod 755 -c {} \;
命令执行完成后,将显示权限已更新的文件和文件夹列表:

定时任务(Cron Jobs)
定时任务允许您安排命令(如chmod)在特定时间间隔自动运行。
在您的cPanel中,进入定时任务菜单:

在添加新定时任务部分,将常用设置参数设置为每五分钟一次,并将以下脚本添加到命令行:cd /home/username/root_folder && find ./ -type f -not -perm 644 -not -name ".ftpquota" -exec chmod 644 -c {} \;; find ./ -type d -not -perm 755 -not -group nobody -exec chmod 755 -c {} \;
注意1:请务必将username替换为您的实际cPanel用户名,将root_folder替换为您的域名对应的正确目录名。
注意2:脚本不能在主home目录(如 /home/username 下)执行。home目录包含系统和账户专用文件夹,这些文件夹需要自定义权限以保证cPanel正常运行。将这些权限更改为默认值(0755/0644)可能导致安全问题、服务冲突或控制面板故障。只能通过恢复完整cPanel备份来修复。

运行定时任务并等待最多5分钟,让脚本完成相应更改。之后,必须将其移除:

如果您不确定正确的权限设置,最好只做最小的更改,或联系支持以避免潜在的安全风险或服务中断。