了解并管理cPanel中的文件权限

文件权限定义了谁可以读取、修改或执行您主机账户中的文件和文件夹。正确的权限对于维护网站安全以及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)。这允许其他人读取和执行文件,但只有账户所有者可以修改。这些权限并不总是自动设置,可能需要手动调整。

注意事项:

  1. 避免将权限设置为777,因为这会带来严重的安全风险。

  2. 错误的权限设置可能会极大地削弱您的主机账户安全,使未授权用户能够修改您的文件、暴露敏感配置数据,并增加恶意软件感染的风险。

  3. 从网站功能角度看,不正确的权限可能导致500内部服务器错误、“403权限被拒绝”错误、媒体上传失败、插件或主题安装问题等。


如何更改文件和目录的权限


权限可以通过三种主要方式修改:使用文件管理器(在cPanel中)、SSH(命令行)或定时任务(cron job)(自动执行命令)。每种方法适用于不同的场景。

  • 文件管理器

当您需要更改一个或少数文件/文件夹的权限时很有用。

  1. 登录您的cPanel账户,进入文件部分,打开文件管理器菜单。

    或者在主机管理器中,点击管理旁边的主机方案,进入文件与存储,点击管理文件在网站名称旁边。您将被重定向到文件管理器中的域根文件夹。

  2. 您将在右侧名为权限的列中看到当前权限:


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


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



    调整复选框并点击更改权限以保存。


    提示:使用文件管理器上方菜单中的权限选项时也会打开同样的设置表:


  • SSH命令行

SSH允许您使用chmod 命令修改权限。当您需要更改大量文件的权限时,此方法很有用。

  1. 通过SSH访问您的主机账户。

  2. 接下来,使用以下命令导航到您的域根目录:

    cd /home/username/root_folder

    注意:请务必将username替换为您的实际cPanel用户名,将root_folder替换为您的域名对应的正确目录名:

  3. 运行以下命令将目录权限设置为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 {} \;

  4. 命令执行完成后,将显示权限已更新的文件和文件夹列表:


  • 定时任务(Cron Jobs)

定时任务允许您安排命令(如chmod)在特定时间间隔自动运行。

  1. 在您的cPanel中,进入定时任务菜单:


  2. 在添加新定时任务部分,将常用设置参数设置为每五分钟一次,并将以下脚本添加到命令行:

    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备份来修复。


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


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

需要提供有效的电子邮箱