pass team – An extension for pass(1) which allows team members to share passwords among themselves using Role-based Access Control.
pass team
--version|--license|--help
pass team
[OPTIONS] COMMANDS...
pass team init
([--trusted] <gpg-key>)...
pass team role
list
pass team role
(create|show|remove) <role>...
pass team role
(assign|unassign) <role> <gpg key>...
pass team share
list
pass team share
(show|unset|reencrypt) <shared dir>
pass team share
(add|set|remove) <share dir> <role>...
pass team key
list
pass team key
show <pattern>
Pass team is an extension for pass - the standard unix password manager (https://www.passwordstore.org/).
Pass team allows team members to use pass as the password store for both private and shared passwords and distribute shared passwords among themselves using Role-based Access Control.
Pass team assigns one or more roles to gpg keys and shares directories of
the password store with those roles. That is why the most important COMMANDS
are pass team role
, pass team share
, and pass team key
.
Pass team works without any super user who can read and change all passwords – however, you can have one, of course.
PASSWORD_STORE_TEAM_QUIET
environment variable
to any value.PASSWORD_STORE_TEAM_DEBUG_LEVEL=[0-3]
for setting a debug level.NO_COLOR
or
PASSWORD_STORE_TEAM_NO_COLOR
environment variable to any value.Initialize the pass team extensions and use the given gpg-key as pass team managers. The pass team managers are responsible for managing the roles and shared directories. Managers who are ’trusted’ will also be added to every share (and thus will be able to read every password). This is handy when passwords need to be reencrypted often because of changing roles or shares.
The --trusted
flag always applies to the next directly following gpg-key.
Commands for adding, removing, assigning role and more.
-q
OPTION all roles will
be printed space-separated in one line.pass team share set
if
the directory has not been shared previously.--all
removes the shared
directory completely. If the directory is not being shared with any role
anymore, the directory is removed from the list of shared directories and
all passwords are reencrypted for the local password store.Alias for pass team share remove --all
.
The key management is not fully implemented. It is planned to do so until
the 0.4.0 release (see the project's roadmap). Currently it is possible to
list the gpg keys that are used in the password store and show details for
particular keys.
The list shows the fingerprint of the gpg public key and the uids.
If the list of keys says “it’s you!” the private key is available for the key in question.
If the list says “key is missing” the public key with the given fingerprint is not in the gpg keyring. You have to add it manually to gpg.
If the list says “key is expired” the public key with the given fingerprint is expired.
If the list says “key is not validated” the public key is not validated. If you try to encrypt a password for this key, gpg will say something like
Warning: Could not reencrypt ‘somedir/’. gpg: ABCDEF1234567890: There is no assurance this key belongs to the named user gpg: [stdin]: encryption failed: Unusable public key
You should validate the key in question by signing it (after you have checked the identity of the key owner and found them trustworthy, of course).
If the list says “key is ambiguous” a key was used in a way that cannot identify the key unambiguously. This should be considered a misconfiguration of your password store. This can occur when a password store was initialized with
$ pass init alice@example.com
and there are several keys for alice@example.com
available in your gpg store.
pass team -q key list
only shows the fingerprints and the uids of the
keys and does not pretty-print the fingerprints.
Exit Code:
EXIT_BAD_KEY
(99) when at least one of the listed keys is expired,
ambiguous, not validated or the public key is unknown.Note: Not all keys in your gpg store will be searched for matches
but only those keys which are actually used by your team. That is,
only keys which are assigned to one of your team's roles are
considered.
pass team -q key show
only prints the fingerprint and the uids of the key
if there is a match.
In non-quiet mode also the roles and shared directories for the given key are listed. Additional information (expiredness, validity, etc.) is printed as well. See list
for more information.
Exit Codes:
EXIT_NO_MATCHING_KEY
(96) when there is no matching key.EXIT_KEY_EXPIRED
(97) when the key is expired.EXIT_KEY_VALIDITY
(98) when the key’s validity is unknown.pass team --help
to find the correct ussage.pass help
to see how.pass team initialize <gpg-key>
to do so.Other exit codes stem from gpg or other programms when they are used internally and are passed through.
--no-color
flag.--quiet
flag.--debug
flags.Copyright (C) 2021-2022 Timm C. Fitschen t.fitschen@indiscale.com
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.