制限された権限でスクリプトの一部を実行するにはどうすればよいですか?

制限された権限でスクリプトの一部を実行するにはどうすればよいですか?

次の問題があります。 Postgresqlを実行しているすべてのコンピュータには特別なユーザーがいます。ポストグレス。このユーザーはデータベースサーバーへの管理アクセス権を持っています。

ここで、psqlをユーザーとしてデータベースコマンドを実行するBashスクリプトを作成したいと思います。ポストグレス(psqlはユーザーとして実行する必要があります。ポストグレス、スクリプトではありません)。これまでは問題になりません。ユーザーとしてスクリプトを実行できます。ポストグレス

しかし、psqlの出力を次のディレクトリのファイルに書きたいと思います。ポストグレス書き込み権限がありません。

どうすればいいですか?

しかし、スクリプト自体でEUIDを変更することを検討しました。

  1. BashスクリプトでEUIDを変更する方法が見つかりません
  2. このようなものを使用するときにEUIDをどのように変更しますか
    psql -U postgres -c "<command>" > file

ベストアンサー1

サブシェルを使用してください:(su -c 'psql -U postgres -c "<command>"' postgres) > file

サブシェル内で操作を実行する権限を削除できますが、出力は元の権限を持っている元のシェルにリダイレクトされます。

おすすめ記事