pass team
implements Role-based Access Control (RBAC) for pass
.
The terms and abbreviations are oriented towards the
Wikipedia article
on Role-based Access Control.
Central Concepts
- Subject (S)
- Every subject is identified by a gpg key. In many
cases ‘subject’ is just a fancy technical term for
‘person’.
- Role (R)
- Roles are created and managed via the
pass team role
commands. Roles have a unique name (e.g.
human-resources
).
- Permission (P)
- There is only just one notable permission in this
context—the permission to read a password in the
password store.
Central Relations
- Subject Assignment (SA = S x R)
- Roles are (un)assigned to subjects via the
pass team role (un)assign
command.
- Permission Assignment (PA = P x R)
- The permission to read the passwords in
a directory is assigned to a role by “sharing” that
directory with the role via
pass team share add ...
.
This results in the passwords being encrypted with all
gpg-ids which have been assigned the role in question.
- Role Hierarchy (RH = R x R)
- Not implemented yet: Roles have a partial order,
i.e. a role can entail another role. E.g. the
“team-leader” role might entail the “team-member” role
and all passwords readable for the “team-member” are
also readable for the “team-leader”.