¿Cómo puedo ejecutar comandos como otro usuario con su .bash_profile en lugar del usuario actual?
-
29-10-2019 - |
Pregunta
Quiero ejecutar un comando como usuario no raíz en un script de inicio (rc.local). El comando que quiero ejecutar es en realidad un alias en el usuario no raíz .bash_profile. He intentado usar
su - myuser -c aliased_cmd
Pero esto no funciona. Si simplemente escribo
su - myuser
# wait for login...
aliased_cmd
Funciona bien, pero obviamente esto no es apropiado en el guión real. Por supuesto que podría copiar los alias y las funciones que me gustaría usar en el archivo rc.local real, pero esto parece un poco tonto ... tal vez hay una opción que no conozco o una forma de usar sudo para ¿este?
Solución
Después de obtener el perfil, incluya lo siguiente
shopt -s expand_aliases
Otros consejos
Citado man su
:
Cuando se usa, debe especificarse como la última opción SU.
No especifica qué sucede si no es la última opción. Además, en la sinopsis el nombre de usuario es después Todas las opciones.
Has probado su -c aliased_cmd - myuser
o su -l -c aliased_cmd myuser
?