#!/bin/bash # 数字档案系统文件权限修复脚本 # 用于解决Docker部署中的文件权限问题 echo "开始修复数字档案系统文件权限..." # 定义数据目录 DATA_DIRS=( "./data/upload" "./data/temp" "./data/unzip" "./data/images" "./data/reports" "./logs" ) # 创建目录(如果不存在) echo "创建数据目录..." for dir in "${DATA_DIRS[@]}"; do if [ ! -d "$dir" ]; then echo "创建目录: $dir" mkdir -p "$dir" else echo "目录已存在: $dir" fi done # 设置权限 - 使用1001:1001 (与Dockerfile中的app用户一致) echo "设置目录权限为1001:1001..." for dir in "${DATA_DIRS[@]}"; do echo "设置权限: $dir" sudo chown -R 1001:1001 "$dir" sudo chmod -R 755 "$dir" done # 验证权限设置 echo "验证权限设置..." for dir in "${DATA_DIRS[@]}"; do echo "目录: $dir" ls -ld "$dir" done echo "文件权限修复完成!" echo "" echo "重要提示:" echo "1. 当前系统用户需要对数据目录有读写权限" echo "2. 如果1001用户不存在,请确保Docker容器内的app用户UID为1001" echo "3. 在Linux环境下,可以使用 'id -u' 和 'id -g' 查看当前用户ID" echo "" echo "如果仍然遇到权限问题,可以尝试:" echo "1. 将当前用户添加到docker组: sudo usermod -aG docker \$USER" echo "2. 重新登录使权限生效" echo "3. 或者使用root用户运行: sudo ./fix-permissions.sh"