Vous pouvez utiliser cette astuce :
{ anycommand } | su -c 'tee file' user
tee(1)
est un utilitaire POSIX, vous pouvez donc compter sur sa disponibilité.
Ou, avec sudo
:
{ anycommand } | sudo -u user 'tee file'
Utiliser un sous-shell :(su -c 'psql -U postgres -c "<command>"' postgres) > file
À l'intérieur du sous-shell, vous pouvez supprimer les autorisations pour effectuer votre travail, mais la sortie est redirigée vers votre shell d'origine qui dispose toujours de vos autorisations d'origine.