Pwman3 aims to provide a simple but powerful command line interface for password management. It allows one to store your password in a SQLite database locked by a master password which can be encrypted with different algorithms (e.g AES, Blowfish, DES3, IDEA, etc.).
Pwman3 is a nice command line password manager, which is smart enough to use different SQL Databases (MySQL, SQLite, PostgreSQL). Pwman3 can also copy passwords to the clipboard (on Mac and Linux) without exposing them, so you save some typing. Besides managing and storing passwords, Pwman3 can also generate passwords using different algorithms.
Nice Features in pwman3:
File or Directory | Description |
---|---|
$HOME/.pwman/ | User-specific pwman3 directory. |
$HOME/.pwman/pwman.db | The user's default SQLite password database if no other database or location is specified. |
File or Directory | Description |
---|---|
$HOME/.pwman/config | The application's configuration file. |
Manual pages:
user@host:~$ man pwman3
Readme file:
user@host:~$ zless /usr/share/doc/pwman3/README.md.gz
Inline help:
user@host:~$ pwman3 pwman> help Documented commands (type help <topic>): ======================================== EOF copy e export h list o passwd save clear cp edit filter help n open print set cls delete exit forget l new p rm tags Miscellaneous help topics: ========================== import Undocumented commands: ====================== ls
To install pwman3 on Debian:
root@host:~$ apt-get update root@host:~$ apt-get -y install pwman3
The user-specific pwman3 configuration file $HOME/.pwman/config
has the following INI-style structure:
[section-name] option = value option = value ...
The following table describes the configuration options and their possible values as well as the section names where those configuration options are valid in:
Section | Option | Value | Description |
---|---|---|---|
Readline | history | String | Path to the file containing history of the commands typed. |
Global | save | True / False | Whether the configuring file should be saved. |
Global | colors | yes / no | If set to no, no colors used in output. This is useful for breil terminals. |
Global | cp_timeout | Integer | Number of seconds before the clipboard is erased. |
Global | cls_timeout | Integer | Number of seconds before the screen is clean after a print. |
Global | umask | String | The umask in which database and configuration files are written. |
Global | xsel | String | Path to the xsel binary (Linux and BSD only). |
Global | lock_timeout | Integer | Set the time period (in seconds) after which the database is locked. |
Database | dburi | Database URI according to RFC3986 | SQLite, Postgreql, MySQL and MongoDB are currently supported. See below for examples. |
Updater | supress_version_check | yes / no | Check for newer versions of pwman3. |
Updater | client_info | string | SHA256 digest of host name and username. Used for identifying the client. |
Database URI examples:
sqlite:///path/to/your/db
postgresql://<user>:<pass>@<host[:port]>/<database>
mysql://<user>:<pass>@<host[:port]>/<database>
mongodb://<user>:<pass>@<host[:port]>/<database>
Upon inital start, pwman3 generates a new password database:
user@host:~$ pwman3 Please enter your new password: Please enter your new password again: Pwman3 0.5.1d (c) visit: http://pwman3.github.io/pwman3/ pwman>
The new password database is stored in the user-specific pwman3 directory, e.g.:
user@host:~$ ls -l ~/.pwman/ total 12 -rw------- 1 user user 9216 Sep 14 07:05 pwman.db
The following – partially synonymous – commands are available within pwman3:
Command | Description |
---|---|
EOF , exit | Exit the application. |
clear | Clears the filter criteria. |
cls | Clear the screen. |
copy , cp | Copy password to X clipboard (xsel is required). |
delete , rm | Deletes nodes. Multiple ids and nodes can be specifie , separated by a space. A range of ids can be specified in the format n-N. |
e , edit | Edit a nodes. |
export [{'filename': '<file>', 'delimiter':'<char>'}] | All nodes under the current filter are exported. |
h [topic] , help [topic] | Print a help message for a command. |
filter <tag> | Filter nodes on a given tag. One or more tags are allowed. Displays current list of tags if called without arguments. |
forget | Forget the database password for the current session. |
l <tag> , list <tag> | List nodes that match current or specified filter. |
n , new | Creates a new node. |
o <ID> , open <ID> | Launch default browser with xdg-open url , for the given node id. Ihe URL must contain http:// or https://. |
passwd | Change the password on the database. |
p <ID|tag> , print <ID|tag> | Display a node. ultiple ids and nodes can be specified, separated by a space. A range of ids can be specified in the format n-N. |
save [filename] | Save the current configuration. |
set [option] [value] | Set a configuration option. Display current value if no value is given. Display the complete configuration of option and value are omitted. |
tags | Display all tags in used in the database. |
Create a new password entry – node – in the database:
pwman> new Username: username Password (Blank to generate): [Repeat] Password (Blank to generate): Url: http://www.bityard.org Notes: 1st Test Please enter your password: Tags: Web
List all nodes:
pwman> filter Current tags: None pwman> ls 1. username@http://www.bityard.org Web
Print a node by its ID:
pwman> print 1 Node 1. Username: username Password: asdasdasd Url: http://www.bityard.org Notes: 1st Test Tags: Web
Filter nodes by a given tag:
pwman> ls 1. username@http://www.bityard.org Web 2. root@ SSH pwman> filter Web Current tags: Web pwman> ls 1. username@http://www.bityard.org Web
Delete a node
pwman> ls 1. username@http://www.bityard.org Web 2. root@ SSH pwman> delete 1 Are you sure you want to delete 'username@http://www.bityard.org' ([y/N])?y username@http://www.bityard.org deleted pwman> ls 2. root@ SSH
None
None
None