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从 shell 启动并与其分开运行的进程访问,因此该变量需要是环境变量。环境变量由子进程继承,但其他shell变量不被继承。

就您而言,您只是忘记使用export变量PASSWORD_STORE_DIR将其标记为环境变量。

export PASSWORD_STORE_DIR=~bakhtin/.pass

export PASSWORD_STORE_DIR如果您已经为其分配了值,则也可以仅将该变量标记为环境变量。

将变量传递到环境中的另一种方法pass是在调用之前编写赋值,甚至无需在调用 shell 中将其创建为 shell 变量pass

PASSWORD_STORE_DIR=~bakhtin/.pass pass

这会为进程设置变量的值pass,但不会在当前 shell 中创建变量。

相关内容