上传目录权限修复脚本

当前后端都要访问同一个上传目录时,最容易出问题的往往不是代码,而是目录权限。

脚本

#!/bin/bash
 
UPLOAD_DIR="/opt/arkvoice/upload"
UPLOAD_USER="pver"
UPLOAD_GROUP="arkfiles"
 
if ! getent group $UPLOAD_GROUP > /dev/null; then
  groupadd $UPLOAD_GROUP
fi
 
usermod -aG $UPLOAD_GROUP $UPLOAD_USER
usermod -aG $UPLOAD_GROUP nginx
 
chown -R $UPLOAD_USER:$UPLOAD_GROUP $UPLOAD_DIR
chmod -R 2755 $UPLOAD_DIR
 
echo "上传目录权限已修复"

思路

这份脚本的核心不是把目录改成 777,而是:

  • 让业务用户拥有目录
  • 让 Web 服务进程通过组权限读取
  • 用 setgid 让子目录继承所属组