Al sudar las variables de entorno no se conservan.
En mi caso, uso el documento aquí .
Pones tus acciones como my_script.sh
dentro de tu DOCUMENTO AQUÍ:
su -u some_user <<EOF
./my_script.sh
EOF
No debe colocar variables directamente aquí, ya que serían interpretadas por su usuario actual.
su -u some_user <<EOF
./my_script.sh $MY_VAR
EOF
Si $MY_VAR
no está configurado para el usuario que ejecuta el script, no se configurará.
Su variable debe ser llamada dentro de sus scripts, o debe escapar de ellos con \
.
P.ej.
su -u some_user <<EOF
./my_script.sh \$MY_VAR
EOF
Aquí, $MY_VAR
tendrá un some_user
valor contextual.
# whoami => root # sudo -u user whoami => user
sudo -u user
es análogo asu user
cambiar el entorno en su que tienes que usarsu - user
-u
usar shell ... Creo que también ignora los grupos ... Intenté algo desde la raíz (usando sudo -u down) y funcionó, aparentemente no lo hizo para el usuario. .. así que tengo que asegurarme de que estoy ejecutando comandos de una manera que tenga todas las limitaciones y problemas ambientales.