PASSパスワードの保存:環境変数はパスワードの保存場所には影響しません。

PASSパスワードの保存:環境変数はパスワードの保存場所には影響しません。

しばらくパスワードを保存するためにpassを使用してきましたが、今はデフォルトの場所からパスワードストアを移動したいと思います。マニュアルページによると、PASSWORD_STORE_DIR変数を目的のパスに設定するだけでデフォルトのパスを無視できますが、私の場合は何の効果もありませんでした。.password-storeフォルダを新しい場所に移動して環境変数を設定した後、コマンドを実行すると、pass「エラー:パスワードストアが空です。 'pass init'を試してください。」というメッセージが表示されます。.password-store内部ホームディレクトリの名前を変更するだけでも:

$ cd
$ mv .password-store .pass
$ PASSWORD_STORE_DIR=/home/bakhtin/.pass #bakhtin is the user name
$ pass
Error: password store is empty. Try "pass init".

問題が何であるかについてのアイデアはありますか?変数名などに誤字がないことを確認しました。

答え1

変数とその値はpassシェルで始まり、別々に実行されるプロセスからアクセスする必要があるため、変数は環境変数でなければなりません。環境変数は子プロセスによって継承されますが、他のシェル変数は継承されません。

あなたの場合、export変数を使用してPASSWORD_STORE_DIR環境変数としてマークすることを忘れました。

export PASSWORD_STORE_DIR=~bakhtin/.pass

export PASSWORD_STORE_DIRすでに値を割り当てている場合は、変数を環境変数として表示することもできます。

環境に変数を渡すもう1つの方法は、pass呼び出すシェルからシェル変数として作成せずに、呼び出し前に割り当てを作成することですpass

PASSWORD_STORE_DIR=~bakhtin/.pass pass

これはプロセスの変数値を設定しますpassが、現在のシェルに変数を作成しません。

関連情報