Buenas a todos!
Hoy vengo con una duda (considero) bastante estupida. Os cuento
Estoy como root. Tengo un archivo .sql que quiero ejecutarlo median psql pero como otro usuario. Es decir, quiero que el script cambie de usuario (sin contraseña), ejecute el comando y vuelva a logearse como root pidiendo la contraseña. Esto es lo que tengo
#!/bin/bash
su - postgres
psql -d nombredb -f fichero.sql
su - root
Pero lo unico que hace es que se loguea como "postgres" y se queda en esa shell, no ejecuta el comando psql
Se que es una tonteria lo que se me escapa, agradezco cualquier tipo de ayuda
Gracias y un saludo!
Hola!
No soy usuario de linux, pero encontré ésto: https://www.cyberciti.biz/open-source/command-line-hacks/linux-run-command-as-different-user/ (https://www.cyberciti.biz/open-source/command-line-hacks/linux-run-command-as-different-user/)
Creo que podrías usar:
su - postgres -c 'psql -d nombredb -f fichero.sql'
Saludos!
mi recomendacion
psql -U nombre_usuario nombredb -f fichero.sql
Hola!
Gracias a los dos por responder. La solucion que me propone engel lex ya la probé y salta un error de autentificacion Peer, que para solucionarlo tengo que tocar algunos archivos de conf a los que de momento no tengo autorizacion de acceso, gracias de todas formas!
La solucion de MCKSys a rulado perfectamente, tema solucionado y un millon de gracias!
Saludos!