54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/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" |