Estou usando o pass há algum tempo para armazenar senhas, mas agora quero mover meu armazenamento de senhas do local padrão. De acordo com a página man, basta definir a PASSWORD_STORE_DIR
variável para o caminho desejado para substituir o padrão, porém no meu caso isso não tem efeito. Depois de mover a .password-store
pasta para um novo local e definir a variável de ambiente, a execução do comando pass
resulta em "Erro: o armazenamento de senha está vazio. Tente "pass init"". Mesmo se simplesmente renomear o .password-store
diretório inicial interno:
$ 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".
Alguma ideia de qual pode ser o problema? Certifiquei-me de que não há erros de ortografia no nome da variável e tal.
Como a variável e seu valor precisam ser acessados por
pass
, um processo iniciado a partir do shell e executado separadamente dele, a variável precisa ser uma variável de ambiente. As variáveis de ambiente são herdadas por processos filho, mas outras variáveis de shell não são herdadas.No seu caso, você simplesmente esqueceu de usar
export
naPASSWORD_STORE_DIR
variável para marcá-la como uma variável de ambiente.Você também pode usar apenas
export PASSWORD_STORE_DIR
para marcar a variável como uma variável de ambiente se já tiver atribuído um valor a ela.Outra maneira de passar a variável para o ambiente
pass
sem criá-la como uma variável de shell no shell de invocação é escrever a atribuição na frente da invocação depass
:Isso define o valor da variável para o
pass
processo, mas não cria uma variável no shell atual.