13、deploy 用户与权限收敛
核心目标是:
部署可以自动化执行,但 deploy 用户不能拥有不必要的系统权限。换句话说:
能部署,但不能随便改系统。 能 reload Nginx,但不能随便重启机器。 能写应用目录,但不能改 /etc。 能拉代码和构建,但不能拿 root 当日常用户。1. 为什么需要 deploy 用户
很多初期部署会直接用:
root或者:
sudo su -然后执行:
git pull npm install npm run build cp -r dist/* /usr/share/nginx/html/ systemctl reload nginx这能跑,但风险很大。
如果部署脚本有 bug,可能误删系统目录:
rm -rf "$DEPLOY_DIR"/*如果环境变量为空,可能变成:
rm -rf /*如果 CI 密钥泄露,攻击者拿到的是 root 权限。
如果 npm 构建链路被污染,恶意脚本可能以 root 权限执行。
所以生产环境一般不应该用 root 做日常部署用户。
2. deploy 用户是什么
deploy 是一个专门用于发布应
