¿Cómo puedo ejecutar comandos como otro usuario con su .bash_profile en lugar del usuario actual?

StackOverflow https://stackoverflow.com/questions/9394175

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?

¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top