为什么需要设置正确的权限?
不正确的权限设置会带来两种主要风险:

(图片来源网络,侵删)
- 安全风险:如果权限设置得过于宽松(将文件夹权限设为777),任何能访问网站的人(包括黑客)都可以写入、修改甚至删除你的网站文件,极易被植入木马、篡改页面或窃取数据。
- 功能异常:如果权限设置得过于严格,织梦程序本身(如自动生成HTML、上传附件、缓存数据等)将无法写入必要的文件和文件夹,导致网站功能无法正常使用,
- 后台无法上传图片或附件。
- 前台文章无法生成静态HTML页面。
- 系统缓存无法更新,导致网站卡顿或数据不正确。
我们的目标是:给予织梦程序运行所必需的最小权限,同时保证系统的安全。
织梦CMS核心文件夹及推荐权限
以下是对织梦CMS各重要文件夹权限的详细说明和建议设置,我们通常使用 数字权限(如755)和 字母权限(如rwxr-xr-x)来表示,在Linux/Unix服务器上最常用的是数字权限。
核心程序文件夹
- 文件夹:
/dede/(后台管理目录) - 推荐权限:
755 - 说明: 这是网站的后台管理目录,包含所有管理功能文件。
755权限意味着:- 所有者 (Owner): 可读、可写、可执行 (
rwx= 7)。 - 所属组 (Group): 可读、可执行 (
r-x= 5)。 - 其他人 (Others): 可读、可执行 (
r-x= 5)。 - 这是标准的目录执行权限,确保Web服务器可以执行其中的PHP文件,同时防止其他用户随意篡改。
- 所有者 (Owner): 可读、可写、可执行 (
数据文件夹
- 文件夹:
/data/ - 推荐权限:
755(目录) /644(文件) - 说明: 这是织梦的核心数据目录,存放着配置文件 (
config.php)、缓存文件、会话文件等。这是安全最关键的目录之一!- 目录
/data/: 权限设为755,允许Web服务器进入该目录。 - 文件
/data/config.php: 必须设置为644或更严格的600。644(rw-r--r--): 所有者可读写,其他人只读,这是最常见和安全的设置。600(rw-------): 仅所有者可读写,其他人没有任何权限,这是最安全的设置,但需要确保Web服务器的运行用户(如www-data,apache,nginx)就是该文件的所有者。
- 其他文件 (如缓存文件): 权限通常为
644。
- 目录
网站根目录
- 文件夹: (
/wwwroot/yourdomain.com/) - 推荐权限:
755(目录) /644(文件) - 说明: 网站的根目录及其下的PHP、HTML、JS、CSS等文件。
- 目录:
755,标准目录权限。 - 文件:
644,标准文件权限。
- 目录:
上传和附件目录
- 文件夹:
/uploads/,/special/,/images/等 - 推荐权限:
755(目录) /644(文件) - 说明: 这些是用户上传文件(图片、附件等)的目录,Web服务器需要写入权限来保存文件。
- 目录:
755,允许Web服务器进入和创建文件。 - 文件:
644,上传后的文件权限设为只读,防止被恶意篡改。
- 目录:
缓存目录
- 文件夹:
/templets/,/cache/(如果存在) - 推荐权限:
755(目录) /644(文件) - 说明: 织梦在生成模板缓存时会向这些目录写入文件。
- 目录:
755,允许写入。 - 文件:
644,缓存文件只读。
- 目录:
安装目录 (安装完成后必须删除或重命名)
- 文件夹:
/install/ - 安装前权限:
755 - 安装后操作: 必须删除或重命名 (例如改为
install_backup)。 - 说明:
/install/目录包含安装程序,一旦安装完成,这个目录就构成了严重的安全漏洞,任何能访问它的人都可以重新安装你的网站,覆盖所有数据。切记!
如何设置权限?
通过FTP客户端设置 (如 FileZilla)
- 连接到你的服务器。
- 在右侧文件列表中,右键点击需要设置权限的文件夹或文件。
- 选择 “文件权限...” (File permissions...)。
- 在弹出的窗口中,你可以通过勾选
Read,Write,Execute来设置,或者直接在数字输入框中填入数字(如755)。 - 勾选 “递归” (Recurse into directories) 选项,可以一次性设置该目录下所有子目录和文件的权限。
- 点击 “确定”。
注意:使用“递归”功能时要非常小心,确保你只对正确的目录使用,以免错误地修改了其他不需要修改的文件权限。
通过SSH命令行设置 (Linux服务器)
这是最精确和高效的方式,特别是对于大量文件。

(图片来源网络,侵删)
-
设置目录权限 (755):
# 将 /path/to/dede 目录及其所有子目录和文件的权限设置为755/644 find /path/to/dede -type d -exec chmod 755 {} \; -
设置文件权限 (644):
# 将 /path/to/dede 目录下的所有文件权限设置为644 find /path/to/dede -type f -exec chmod 644 {} \; -
单独设置关键文件权限 (如 data/config.php):
# 将 config.php 的权限设置为644 chmod 644 /path/to/yourwebsite/data/config.php # 更安全的做法,设置为600 (仅所有者可读写) chmod 600 /path/to/yourwebsite/data/config.php
-
删除安装目录:
(图片来源网络,侵删)# 彻底删除 /install 目录 rm -rf /path/to/yourwebsite/install # 或者重命名 mv /path/to/yourwebsite/install /path/to/yourwebsite/install_backup
权限设置的最佳实践和常见问题
- 最小权限原则:只给程序运行所必需的权限,不多给一分。
- 使用正确的所有者:确保网站文件的所有者是Web服务器的运行用户(如
www-data),这可以通过chown -R www-data:www-data /path/to/yourwebsite命令实现,当所有者正确时,755和644权限已经足够,无需使用777。 - 安装后立即删除
/install/目录:这是铁律! - 保护
data/config.php:将其权限设置为644或600。 - 定期检查:在更新插件、主题或手动修改文件后,检查一下关键目录的权限是否被意外改变。
常见问题
-
问题1:后台提示“没有权限”或“无法上传图片”。
- 原因:通常是
uploads/目录权限不是755,或者data/目录或config.php文件权限过于严格。 - 解决:通过FTP或SSH检查并修正上述目录和文件的权限。
- 原因:通常是
-
问题2:网站首页或文章页无法生成HTML,显示动态链接。
- 原因:网站根目录 () 或
templets/目录权限不是755,导致织梦无法写入生成的HTML文件。 - 解决:检查并修正网站根目录和模板目录的权限。
- 原因:网站根目录 () 或
-
问题3:有人告诉我把所有文件夹都改成
777就能解决问题。- 警告:绝对不要这样做!
777(rwxrwxrwx) 是最危险的权限,它会让你的网站门户大开,极易被攻击,这是最糟糕的“解决方案”,应该坚决抵制,请按照上述推荐权限进行设置。
- 警告:绝对不要这样做!
一个标准的织梦权限设置脚本 (SSH)
如果你对命令行不熟悉,可以尝试以下一键设置脚本(请将 /wwwroot/yourdomain.com 替换为你的网站实际路径)。
# 进入你的网站根目录
cd /wwwroot/yourdomain.com
# 1. 设置所有者 (假设Web用户是 www-data)
# 如果不确定你的Web用户,可以使用 ps aux | grep nginx 或 ps aux | grep apache 查看
sudo chown -R www-data:www-data .
# 2. 设置目录权限为 755
find . -type d -exec chmod 755 {} \;
# 3. 设置文件权限为 644
find . -type f -exec chmod 644 {} \;
# 4. 单独设置 data/config.php 为 600 (最安全)
chmod 600 data/config.php
# 5. 删除 install 目录 (如果存在)
if [ -d "install" ]; then
rm -rf install
echo "install directory has been removed."
fi
echo "Permission setup completed!"
最后提醒:在执行任何修改操作前,务必备份你的网站文件和数据库!以防万一。
