为什么需要检测和设置正确的目录权限?
正确的目录权限是 DedeCMS 安全的第一道防线,权限设置不当可能导致以下严重问题:

- 网站被上传木马:
data、uploads等可写目录权限过高(如777),攻击者可以轻易地通过网站漏洞上传恶意脚本(Webshell),从而控制你的整个服务器。 - 配置信息被篡改:
data目录下的config.cache.inc.php文件包含了数据库连接等核心配置,如果可被写入,数据库密码可能会被泄露。 - 网站被挂马:攻击者可以修改模板文件或上传文件,给你的网站挂上恶意代码,将你的访客引向钓鱼网站或传播病毒。
- 服务器被拖库:一旦服务器被控制,数据库中的所有用户信息、文章内容都可能被窃取。
定期检查和设置正确的目录权限是 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(只读),绝对不能有写入权限(666 或 777)。 |
| 缓存目录 ( /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。
- 绝对禁止:将
data、uploads等核心目录设为777,这是最常见的严重安全隐患。
如何检测和修改目录权限?
主要有两种方法:通过 FTP/SFTP 客户端,或者通过 SSH 命令行。

使用 FTP/SFTP 客户端(如 FileZilla, WinSCP)
这是最常用、最直观的方法,适合大多数虚拟主机用户。
- 连接服务器:使用你的 FTP 软件连接到你的网站服务器。
- 查看权限:
- 在文件列表中,右键点击一个文件或目录。
- 选择 “文件属性”(File attributes)或 “权限”(Permissions)。
- 你会看到一个包含
所有者、用户组、其他人的复选框界面,分别对应读、写、执行。
- 修改权限:
- 根据上文的推荐标准,勾选或取消勾选相应的复选框。
- 设置目录为
755:- 所有者:读、写、执行 (✔✔✔)
- 用户组:读、执行 (✔✔)
- 其他人:读、执行 (✔✔)
- 设置文件为
644:- 所有者:读、写 (✔✔)
- 用户组:读 (✔ _)
- 其他人:读 (✔ _)
- 点击“确定”或“应用”保存更改。
使用 SSH 命令行(推荐服务器/VPS用户)
如果你有服务器的 SSH 访问权限,使用命令行效率更高,也更精确。
-
登录服务器:使用
ssh命令登录你的服务器。 -
进入网站根目录:
cd /path/to/your/dedecms(替换成你的网站实际路径)。
(图片来源网络,侵删) -
查看权限:使用
ls -l命令。ls -l
输出结果中,每一行的开头就是权限,
-rw-r--r--(644) 或drwxr-xr-x(755)。d开头代表是目录。 -
递归修改权限:使用
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
-
常见问题与注意事项
-
为什么我的网站在设置了
755后无法上传/生成静态文件? 这是因为程序没有写入权限,请检查uploads、data、cache、html等目录的权限是否为755,如果已经是755仍然不行,可能是文件所有者(Owner)不正确,确保这些目录的所有者是运行 Web 服务器的用户(如www-data,nginx,apache),而不是你的登录用户,可以通过chown -R www-data:www-data .命令来修改。 -
“777”权限是不是最方便? 是的,
777是最“方便”的,也是最危险的,它会关闭系统的安全检查,让任何人都可以读写执行。绝对不要在生产环境(正式运行的网站)中使用777,只有在临时调试或安装程序时,为了排除权限问题才可能短暂使用,完成后必须立即改回安全值。 -
我应该多久检查一次权限?
- 安装后:首次安装 DedeCMS 后,务必检查一遍。
- 更新后:每次更新 DedeCMS 程序后,官方可能会修改文件结构,建议检查一下。
- 定期检查:建议每月或每季度进行一次例行检查。
- 被入侵后:如果怀疑网站被入侵,除了修改密码,更要彻底检查所有文件和目录权限,并将可疑文件删除。
-
修改权限后网站出现 500 内部服务器错误怎么办? 这通常是权限设置错误导致的,最常见的是把某个
.php文件或目录错误地设为了755(目录)或777(文件),请通过 FTP 或 SSH 回滚到之前的正确权限设置,然后重新、仔细地按照推荐标准进行设置。
通过以上步骤,你就可以系统地对你的 DedeCMS 网站进行目录权限检测和加固,大大提升网站的安全性。
