publicar-repo: como root, el scratch de build va aparte — si no, envenena el árbol del usuario
`work_root` sale de `dirname(store)/work`, o sea `/work` con el store en `/store`, y ahí `sources` y `out` son ENLACES a `/work/sergio/work/…`, que es del usuario. Publicar como root dejaría directorios de root en su árbol y su siguiente build moriría con un permiso denegado que no menciona la causa. No es hipotético: root ya congeló el clon de tawasuyu del dueño dejándole 24 entradas suyas dentro del `.git`, y del lado de root no falló nada (ver publicar-webs.sh). Si corre como root y nadie fijó TAKANA_WORK, lo manda a /var/tmp/takana-publicar-work y lo dice. Comprobado que el override no mueve el hash: zsh sella en b3:0be3630d… con y sin él. Y el mensaje final deja de decir «falta el vhost» cuando lo acaba de poner: si se instaló y aun así no responde, lo que hay que mirar es el certificado, el DNS y el repo, en ese orden.
This commit is contained in:
@@ -68,6 +68,19 @@ export KEY
|
||||
exit 2
|
||||
}
|
||||
|
||||
# ⚠ ROOT NO ESCRIBE EN EL ÁRBOL DEL USUARIO. `work_root` sale de `dirname(store)/work`, o sea `/work`
|
||||
# con el store en `/store` — y ahí `sources` y `out` son ENLACES a `/work/sergio/work/…`, que es del
|
||||
# usuario. Publicar como root dejaría directorios de root en su árbol y el siguiente build suyo
|
||||
# moriría con un permiso denegado que no menciona esto. Ya pasó con otro guion: root hizo `git pull`
|
||||
# en el clon de tawasuyu, dejó 24 entradas suyas dentro del `.git` y congeló el clon para el dueño
|
||||
# sin que nada fallara del lado de root (ver `publicar-webs.sh`). Así que el scratch va aparte.
|
||||
if [ "$(id -u)" = "0" ] && [ -z "${TAKANA_WORK:-}" ]; then
|
||||
TAKANA_WORK="${TAKANA_WORK_ROOT:-/var/tmp/takana-publicar-work}"
|
||||
export TAKANA_WORK
|
||||
install -d -m 755 "$TAKANA_WORK"
|
||||
echo "==> como root: scratch de build en $TAKANA_WORK (no en el árbol del usuario)"
|
||||
fi
|
||||
|
||||
echo "==> publicando el perfil '$PERFIL' en $DESTINO"
|
||||
install -d -m 755 "$DESTINO"
|
||||
PERFIL="$PERFIL" STORE="$STORE" REPO="$DESTINO" TRUST="$TRUST" TAKANA="$TAKANA" \
|
||||
|
||||
Reference in New Issue
Block a user