dede目录权限检测如何正确设置与排查?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文

为什么需要检测和设置正确的目录权限?

正确的目录权限是 DedeCMS 安全的第一道防线,权限设置不当可能导致以下严重问题:

dede目录权限检测
(图片来源网络,侵删)
  1. 网站被上传木马datauploads 等可写目录权限过高(如 777),攻击者可以轻易地通过网站漏洞上传恶意脚本(Webshell),从而控制你的整个服务器。
  2. 配置信息被篡改data 目录下的 config.cache.inc.php 文件包含了数据库连接等核心配置,如果可被写入,数据库密码可能会被泄露。
  3. 网站被挂马:攻击者可以修改模板文件或上传文件,给你的网站挂上恶意代码,将你的访客引向钓鱼网站或传播病毒。
  4. 服务器被拖库:一旦服务器被控制,数据库中的所有用户信息、文章内容都可能被窃取。

定期检查和设置正确的目录权限是 DedeCMS 网站运维的必备技能。


DedeCMS 目录权限推荐标准

以下是 DedeCMS 各个目录和文件最安全、最推荐的权限设置,这个原则是:最小权限原则,即只授予程序运行所必需的最小权限。

目录/文件 推荐权限 权限值(数字) 说明
网站根目录 755 755 目录可读、可执行、可写(所有者),用户组和其他用户只读、可执行。
核心程序目录
(/dede, /include)
755 755 管理员和程序需要读取和执行这些PHP文件。
模板目录
(/templets)
755 755 程序需要读取模板文件来生成页面。
上传目录
(/uploads)
755 755 重要:目录本身设为 755,目录内的文件(图片、附件等)可以设为 644
数据目录
(/data)
755 755 极其重要:目录本身设为 755,目录内的 .inc.php 文件(如 config.cache.inc.php必须设为 644(只读),绝对不能有写入权限(666777)。
缓存目录
(/cache)
755 755 程序需要写入缓存文件,但目录本身不应有全局写入权限。
HTML静态目录
(/html)
755 755 程序需要写入生成的静态HTML文件。
核心配置文件
(/data/config.cache.inc.php)
644 644 只读,这是数据库密码的存放地,绝对禁止写入!
PHP程序文件
(.php 文件)
644 644 只读,可执行。
静态文件/图片
(.html, .jpg, .css 等)
644 644 只读。

核心要点总结:

  • 目录:大部分设为 755
  • 文件
    • .php 程序文件设为 644
    • .inc.php 配置文件必须设为 644
    • 上传的静态资源(图片、附件等)设为 644
  • 绝对禁止:将 datauploads 等核心目录设为 777,这是最常见的严重安全隐患。

如何检测和修改目录权限?

主要有两种方法:通过 FTP/SFTP 客户端,或者通过 SSH 命令行。

dede目录权限检测
(图片来源网络,侵删)

使用 FTP/SFTP 客户端(如 FileZilla, WinSCP)

这是最常用、最直观的方法,适合大多数虚拟主机用户。

  1. 连接服务器:使用你的 FTP 软件连接到你的网站服务器。
  2. 查看权限
    • 在文件列表中,右键点击一个文件或目录。
    • 选择 “文件属性”(File attributes)或 “权限”(Permissions)。
    • 你会看到一个包含 所有者用户组其他人 的复选框界面,分别对应 执行
  3. 修改权限
    • 根据上文的推荐标准,勾选或取消勾选相应的复选框。
    • 设置目录为 755
      • 所有者:读、写、执行 (✔✔✔)
      • 用户组:读、执行 (✔✔)
      • 其他人:读、执行 (✔✔)
    • 设置文件为 644
      • 所有者:读、写 (✔✔)
      • 用户组:读 (✔ _)
      • 其他人:读 (✔ _)
    • 点击“确定”或“应用”保存更改。

使用 SSH 命令行(推荐服务器/VPS用户)

如果你有服务器的 SSH 访问权限,使用命令行效率更高,也更精确。

  1. 登录服务器:使用 ssh 命令登录你的服务器。

  2. 进入网站根目录cd /path/to/your/dedecms (替换成你的网站实际路径)。

    dede目录权限检测
    (图片来源网络,侵删)
  3. 查看权限:使用 ls -l 命令。

    ls -l

    输出结果中,每一行的开头就是权限,-rw-r--r-- (644) 或 drwxr-xr-x (755)。d 开头代表是目录。

  4. 递归修改权限:使用 chmod 命令。-R 参数表示递归,即对目录下的所有子目录和文件都执行此操作。

    • 设置所有目录为 755

      find . -type d -exec chmod 755 {} \;

      代表当前目录,-type d 代表只查找目录。

    • 设置所有 PHP 文件为 644

      find . -name "*.php" -exec chmod 644 {} \;
    • 设置所有 .inc.php 文件为 644

      find . -name "*.inc.php" -exec chmod 644 {} \;
    • 设置所有非PHP文件(如图片、HTML)为 644

      find . -type f ! -name "*.php" -exec chmod 644 {} \;

      ! -name "*.php" 表示排除所有 .php 文件。

    • 特别注意 data/config.cache.inc.php: 确保它一定是 644

      chmod 644 data/config.cache.inc.php

常见问题与注意事项

  1. 为什么我的网站在设置了 755 后无法上传/生成静态文件? 这是因为程序没有写入权限,请检查 uploadsdatacachehtml 等目录的权限是否为 755,如果已经是 755 仍然不行,可能是文件所有者(Owner)不正确,确保这些目录的所有者是运行 Web 服务器的用户(如 www-data, nginx, apache),而不是你的登录用户,可以通过 chown -R www-data:www-data . 命令来修改。

  2. “777”权限是不是最方便? 是的,777 是最“方便”的,也是最危险的,它会关闭系统的安全检查,让任何人都可以读写执行。绝对不要在生产环境(正式运行的网站)中使用 777,只有在临时调试或安装程序时,为了排除权限问题才可能短暂使用,完成后必须立即改回安全值。

  3. 我应该多久检查一次权限?

    • 安装后:首次安装 DedeCMS 后,务必检查一遍。
    • 更新后:每次更新 DedeCMS 程序后,官方可能会修改文件结构,建议检查一下。
    • 定期检查:建议每月或每季度进行一次例行检查。
    • 被入侵后:如果怀疑网站被入侵,除了修改密码,更要彻底检查所有文件和目录权限,并将可疑文件删除。
  4. 修改权限后网站出现 500 内部服务器错误怎么办? 这通常是权限设置错误导致的,最常见的是把某个 .php 文件或目录错误地设为了 755(目录)或 777(文件),请通过 FTP 或 SSH 回滚到之前的正确权限设置,然后重新、仔细地按照推荐标准进行设置。

通过以上步骤,你就可以系统地对你的 DedeCMS 网站进行目录权限检测和加固,大大提升网站的安全性。

-- 展开阅读全文 --
头像
Winform用C语言开发,可行吗?
« 上一篇 04-18
dede如何调用图片注释?
下一篇 » 04-18

相关文章

取消
微信二维码
支付宝二维码

目录[+]