Files
server/fix-permissions.sh
2025-11-22 22:58:12 +08:00

54 lines
1.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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"