[pgsql-jp: 36389] psql (PostgreSQL) 7.4.8 での .pgpass の不可解な動作

Shindo shindo @ atsystem.jp
2005年 11月 14日 (月) 16:56:43 JST


進藤です。
お世話になります。

.pgpass ファイルを使って特定の場合だけ認証に失敗します。

環境:
Linux version 2.6.9-5.0.5.ELsmp
psql (PostgreSQL) 7.4.8

1)実行ユーザーのホームディレクトリに .pgpass を置いてパスワードを
  格納してあります。
  .pgpass の実行権は 600 で所有者、グループの設定も実行ユーザーに
  設定しています。

2)他のプログラムから シェルスクリプトを介して pgsql でDBにレコードを
  追加しようとして認証で失敗します。
    Password: 
    psql: fe_sendauth: no password supplied

3)このシェルスクリプト内の psql の実行直前に 環境変数PGPASSWORDで
  パスワードを設定してやると問題なく認証できてレコードも登録されます。

4)スクリプトの実行ユーザーを確認するために、スクリプト内で
  w=`whoami`
  echo $w >>logfile
  と記述してみたのですが、logfile には正しい実行アカウントが書かれます。

5)同じシェルスクリプトを、Linuxのコマンドプロンプトで実行ユーザー
  として実行すると問題なく認証できてレコードも登録されます。

6)同じプログラムを他のサーバー(Linux version 2.4.20-20.7)、
  (psql (PostgreSQL) 7.4)の組合せでは、問題なく認証できて実行できます。

質問:
1)この現象が、このバージョンに限った問題なのでしょうか。
  そうであれば、バージョンアップまたはダウンで対処したいと考えています。
2)他に何か回避策が無いでしょうか。

よろしくお願いいたします。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 進藤寿則@アットシステム   _/_/
 e-mail shindo@atsystem.jp     _/




pgsql-jp メーリングリストの案内