Firebird Documentation Index → Firebird 2.5 リリースノート → コマンドライン・ユーティリティ → ファイル、プロンプトからのパスワード取得 |
-passwordパラメータを取る任意のコマンドライン・ユーティリティには、パスワード盗聴に対する脆弱性があります。バージョン2.1以降、POSIXプラットフォームのプロセスリストで平文で示されていた引数 [PASSWORD] はアスタリスク( * )で表示されるよう改善されました。
認証のないユーザーからパスワードを秘匿する第二段階として、このリリースでは、パスワードをファイルまたは(POSIXでは)STDINから取得できるようになりました。
Firebird 2.5では、認証用のパスワードを取得する全てのコマンドライン・ユーティリティ向けに、オプションで-pa[ssword]と置き換え可能な-fet[ch_password]スイッチが新たに導入されました。このスイッチは一定のルールに従って右側から短縮して使用できます。
qliユーティリティはこのルールの例外で、有効なスイッチは-Fだけです。
この新しいスイッチをgsecユーティリティの-pwスイッチの代わりに使うことはできません。
このスイッチは一つのパラメータを要求します。これはパスワードを含むファイルのファイルパスで、クオテーションのない文字列で表します。その呼び出しがスーパーユーザー/管理者の権限を持つシステムユーザーからのものでない場合、それは呼び出しを行うシステムユーザーがアクセスできる配置場所でなければなりません。
例えば、
isql -user sysdba -fet passfile server:employee
このコマンドは、現在の作業ディレクトリ内にある“passfile”という名前のファイルから一行目を抽出し、呼び出しの引数 [PASSWORD] としてロードします。
filenameをstdinとして指定することができます:
isql -user sysdba -fet stdin server:employee
stdinがターミナルの場合は、次のようなプロンプトが現れます—
Enter password:
—このように、オペレータにパスワード入力を求めます。
POSIX版では、次のように指定した場合も、プロンプトが現れます。
-fetch /dev/tty
このテクニックは、例えば、stdin(全てを一行で書く場合)からリストアする必要がある場合に役立つでしょう。
bunzip2 -c emp.fbk.bz2 | gbak -c stdin /db/new.fdb -user sysdba -fetch /dev/tty
Firebird Documentation Index → Firebird 2.5 リリースノート → コマンドライン・ユーティリティ → ファイル、プロンプトからのパスワード取得 |