Potresti voler usare questo trucco:
{ anycommand } | su -c 'tee file' user
tee(1)
è l'utilità POSIX, quindi puoi fare affidamento sulla sua disponibilità.
Oppure, con sudo
:
{ anycommand } | sudo -u user 'tee file'
Usa una subshell:(su -c 'psql -U postgres -c "<command>"' postgres) > file
All'interno della subshell puoi rilasciare i permessi per fare il tuo lavoro, ma l'output viene reindirizzato alla tua shell originale che ha ancora i tuoi permessi originali.