次の問題があります。 Postgresqlを実行しているすべてのコンピュータには特別なユーザーがいます。ポストグレス。このユーザーはデータベースサーバーへの管理アクセス権を持っています。
ここで、psqlをユーザーとしてデータベースコマンドを実行するBashスクリプトを作成したいと思います。ポストグレス(psqlはユーザーとして実行する必要があります。ポストグレス、スクリプトではありません)。これまでは問題になりません。ユーザーとしてスクリプトを実行できます。ポストグレス。
しかし、psqlの出力を次のディレクトリのファイルに書きたいと思います。ポストグレス書き込み権限がありません。
どうすればいいですか?
しかし、スクリプト自体でEUIDを変更することを検討しました。
- BashスクリプトでEUIDを変更する方法が見つかりません
- このようなものを使用するときにEUIDをどのように変更しますか
psql -U postgres -c "<command>" > file
?
ベストアンサー1
サブシェルを使用してください:(su -c 'psql -U postgres -c "<command>"' postgres) > file
サブシェル内で操作を実行する権限を削除できますが、出力は元の権限を持っている元のシェルにリダイレクトされます。