管理 Pass 创建的 home dotfiles

Ren*_*tib 3 gnupg home-directory

我是 Linux 的初学者,刚刚开始pass用于管理我的密码。我试图保持我的主目录相当干净,但pass创建了 2 个点文件(.gnupg.password-store),我不知道如何移动到其他目录(.local/ .config/ .cache)。我知道我可以链接它们,但它不能解决~/.

$ ls -a
.cache
.config  
Desktop  
Documents  
Downloads  
.gnupg  
.local  
Music  
.password-store  
Pictures
Videos  
Run Code Online (Sandbox Code Playgroud)

指定的问题:是否有移动的方式.gnupg,并.password-store到另一个目录,并仍然使用他们?

PREFIX可变的二进制定义它,但我真的不知道如何去改变它。

$ ls -a
.cache
.config  
Desktop  
Documents  
Downloads  
.gnupg  
.local  
Music  
.password-store  
Pictures
Videos  
Run Code Online (Sandbox Code Playgroud)

mur*_*uru 6

这段shell代码的含义:

PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
Run Code Online (Sandbox Code Playgroud)

is:设置PREFIX为 的值$PASSWORD_STORE_DIR,使用$HOME/.password-storeif的默认值$PASSWORD_STORE_DIR未设置。

也就是说,您可以将环境变量PASSWORD_STORE_DIR设置PREFIX为您想要设置为所需值的任何路径。因此,比如说,在您.profile或您喜欢管理环境变量的任何地方,设置:

export PASSWORD_STORE_DIR="$HOME/.config/password-store"
Run Code Online (Sandbox Code Playgroud)

这是记录在案的。检查man 1 pass

ENVIRONMENT VARIABLES
PASSWORD_STORE_DIR
      Overrides the default password storage directory.
Run Code Online (Sandbox Code Playgroud)

如果应用程序支持移动点文件,请随意这样做。毕竟,他们宣传这种支持,如果它不起作用,则可能是修复了一个错误。


这同样适用于gpg,与GNUPGHOME环境变量:

GNUPGHOME
      If set directory used instead of "~/.gnupg".
Run Code Online (Sandbox Code Playgroud)


van*_*ium 5

建议:不要担心应用程序在哪里创建其 .dot 配置文件。在您的日常计算机使用中也无关紧要:这些配置文件在大多数情况下都不会出现在您的视线范围内。

为什么:由应用程序决定将其用户配置文件放在哪里。旧的约定是将配置文件直接放在您的主文件夹中,就像pass似乎所做的那样,即$HOME/.password-store. 最近,惯例是.config确实将这种配置移到下面。

如果您想接管对用户配置存储位置的管理,在许多情况下您将需要编辑源代码。一旦开始这样做,您还需要继续修补软件的更新。因此,作为一般建议:将配置文件的放置位置留给开发人员。反过来,开发人员按照当前的约定行事:否则他/她可能会收到很多错误请求。

无论如何,我想更改它pass不过,出于学习目的,您可以在pass. 这是开源的。在这种情况下,该目录是在pass脚本的 bash 源代码中定义的。原则上,您可以将其更改为:

PREFIX="${PASSWORD_STORE_DIR:-$HOME/.config/password-store}"
Run Code Online (Sandbox Code Playgroud)

由于PREFIX在脚本中分配变量的方式,有一种更安全的方法,不需要更改脚本(感谢 muru 的评论)。即PASSWORD_STORE_DIR在启动前设置或导出变量pass,即

PASSWORD_STORE_DIR=$HOME/.config/password-store
Run Code Online (Sandbox Code Playgroud)

在脚本中,PASSWORD_STORE_DIR如果定义了变量 PREFIX,则假定其值为,否则将设置为$HOME/.password-store

这可能是所需的任何更改。任何文件夹都是用-p开关创建的,所以如果整个文件夹结构.config还不存在(例如在一个非常新安装的系统上),则会创建整个文件夹结构。

这是开源的,因此您可以尝试:以新名称复制原始文件,进行编辑并查看其工作原理。如果它不起作用,您仍然可以复制原始版本。

请注意,您需要为要更改的每个应用程序再次研究源代码。在某些情况下,可能需要更改不止一行。

最后,再一次……不要打扰。

  • 您应该设置并导出“PASSWORD_STORE_DIR”,而不是更改脚本。 (2认同)