
核心目标是:部署可以自动化执行,但 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是一个专门用于发布应