Ho il seguente problema: Su ogni macchina che esegue Postgresql c'è un utente speciale postgres . Questo utente ha accesso amministrativo al server di database.
Ora voglio scrivere uno script Bash che esegue un comando di database con psql come postgres dell'utente (psql deve essere eseguito come postgres dell'utente , non lo script). Finora, non sarebbe stato un problema: avrei potuto semplicemente eseguire lo script come postgres dell'utente .
Tuttavia, voglio scrivere l'output di psql in un file in una directory in cui postgres non ha accesso in scrittura.
Come lo posso fare?
Ho pensato di cambiare l'EUID nella sceneggiatura stessa, tuttavia:
- Non sono riuscito a trovare un modo per cambiare l'EUID in uno script Bash
- Come posso cambiare l'EUID quando uso qualcosa del genere
psql -U postgres -c "<command>" > file
?