Mercurial > projects > pwm
diff pwm.1.xml @ 1:55281f14dc9b
Add README file and manpage
author | Guido Berhoerster <guido+pwm@berhoerster.name> |
---|---|
date | Fri, 03 Feb 2017 16:11:58 +0100 |
parents | |
children | 17fb30016e64 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwm.1.xml Fri Feb 03 16:11:58 2017 +0100 @@ -0,0 +1,473 @@ +<?xml version="1.0"?> +<!-- + +Copyright (C) 2017 Guido Berhoerster <guido+pwm@berhoerster.name> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--> +<refentry xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en"> + <info> + <author> + <personname> + <firstname>Guido</firstname> + <surname>Berhoerster</surname> + </personname> + <email>guido+pwm@berhoerster.name</email> + <personblurb/> + </author> + <date>3 February, 2017</date> + </info> + <refmeta> + <refentrytitle>pwm</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source"/> + <refmiscinfo class="version"/> + <refmiscinfo class="manual">User Commands</refmiscinfo> + </refmeta> + <refnamediv> + <refname>pwm</refname> + <refpurpose>password manager</refpurpose> + </refnamediv> + <refsynopsisdiv> + <cmdsynopsis> + <command>pwm</command> + <arg choice="opt"> + <option>-P</option> + <replaceable>password_file</replaceable> + </arg> + <arg choice="opt"> + <replaceable>database_file</replaceable> + </arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1> + <title>Description</title> + <para>The <command>pwm</command> utility is a password manager which + stores passwords and associated metadata in an encrypted database protected + by a master password. It offers both a text-based user interface for + interactive use as well as a non-interactive mode. The database uses the + PasswordSafe database version 3 file format and thus provides + interoperabity with other password managers using the same format.</para> + <para>After opening an existing database or creating a new one, + <command>pwm</command> provides commands to create, modify, delete, and + display password database entries which may be organized in groups. The + contents of a field of a given entry can also be piped to an external + command, e.g. in order to copy the content of the username or password + field of an entry to the clipboard.</para> + <para>If specified, <command>pwm</command> will open or create + <replaceable>database_file</replaceable> instead of the user's default + database.</para> + <para><command>pwm</command> must be run with a locale which uses the UTF-8 + character encoding.</para> + <refsect2> + <title>Output format</title> + <para>The <command>show</command> command displays selected fields by + printing the field name followed by a colon, one or more space characters + and the field's verbatim content to the standard output stream. Field + values may contain newlines, non-printable and/or control + characters.</para> + <para>The <command>pipe</command> prints the verbatim field content to the + standard input stream of the given command.</para> + <para>Error messages are printed to the standard error stream.</para> + </refsect2> + </refsect1> + <refsect1> + <title>Options</title> + <para>The following options are supported:</para> + <variablelist> + <varlistentry> + <term> + <option>-P</option> + <replaceable>password_file</replaceable> + </term> + <listitem> + <para>Read the master password from the first line of + <replaceable>password_file</replaceable>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1> + <title>Usage</title> + <para>If stdin is connected to a terminal pwm will run in interactive mode + and prompt the user for the master password unless + <replaceable>password_file</replaceable> is specified via the + <option>-P</option> option. After successfully opening the password + database the user will be prompted for a command.</para> + <para>When running in non-interactive mode a file containing the master + pasword must be specified via the <option>-P</option> option and after + successfully opening the password database, pwm will execute commands read + from stdin until either an error occurrs or end-of-file is reached.</para> + <para><command>pwm</command> operates on a copy of the password database + in memory, any changes must be explicitly written back to the database + using the write command.</para> + <refsect2> + <title>IDs</title> + <para>Database entries are referred to by an ID value which is a + positive integer value that is guaranteed to be unqiue during the run + time of the pwm utility.</para> + </refsect2> + <refsect2> + <title>Fields</title> + <para>The following entry fields are supported: + <simplelist type="vert"> + <member>group</member> + <member>title</member> + <member>username</member> + <member>password</member> + <member>notes</member> + <member>url</member> + </simplelist> + </para> + <para>Other, existing fields specified by the PasswordSafe file format + will be preserved but cannot be displayed or modified.</para> + </refsect2> + <refsect2> + <title>Commands</title> + <para>Each command must appear on a seperate line terminated by a newline + character. The command and its arguments are seperated by whitespace, + i.e. one or more space or tab characters. If an argument contains + whitespace characters it must either be quoted by encosing it in single + or double quote characters or each whitespace character must be preceded + by a backslash character. Arguments quoted with a single or double quote + character preserve the literal values of all characters with the + exception of the backslash character which can be used to escape the + respective quoting character. Two consecutive backslash characters yield + a literal backslash within both quoted and unquoted arguments. A line + must not end in a single backslash character, any other backslash + characters are ignored.</para> + <para>If an error occurrs while parsing or executing a command, + <command>pwm</command> will terminate when running in non-interactive + mode. In interactive mode it will print an error message and prompt the + user for the next command. The following commands are supported:</para> + <variablelist> + <varlistentry> + <term>List entries</term> + <listitem> + <cmdsynopsis> + <command>list</command> + </cmdsynopsis> + <cmdsynopsis> + <command>ls</command> + <sbr/> + </cmdsynopsis> + <para>List all password database entries.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Create entry</term> + <listitem> + <cmdsynopsis> + <command>create</command> + <arg choice="opt" rep="repeat"> + <replaceable>field</replaceable>=<replaceable>value</replaceable> + </arg> + </cmdsynopsis> + <cmdsynopsis> + <command>c</command> + <arg choice="opt" rep="repeat"> + <replaceable>field</replaceable>=<replaceable>value</replaceable> + </arg> + <sbr/> + </cmdsynopsis> + <para>Create a new entry assigning each given + <replaceable>field</replaceable> to the corresponsing + <replaceable>value</replaceable>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Modify entry</term> + <listitem> + <cmdsynopsis> + <command>modify</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + <arg choice="opt" rep="repeat"> + <replaceable>field</replaceable>=<replaceable>value</replaceable> + </arg> + </cmdsynopsis> + <cmdsynopsis> + <command>m</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + <arg choice="opt" rep="repeat"> + <replaceable>field</replaceable>=<replaceable>value</replaceable> + </arg> + <sbr/> + </cmdsynopsis> + <para>Modify an existing entry identified by + <replaceable>id</replaceable> assigning each given + <replaceable>field</replaceable> to the corresponsing + <replaceable>value</replaceable>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Remove entry</term> + <listitem> + <cmdsynopsis> + <command>remove</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + </cmdsynopsis> + <cmdsynopsis> + <command>rm</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + <sbr/> + </cmdsynopsis> + <para>Remove an existing entry identified by + <replaceable>id</replaceable>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Display entry fields</term> + <listitem> + <cmdsynopsis> + <command>show</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + <arg choice="opt" rep="repeat"> + <replaceable>field</replaceable> + </arg> + </cmdsynopsis> + <cmdsynopsis> + <command>s</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + <arg choice="opt" rep="repeat"> + <replaceable>field</replaceable> + </arg> + <sbr/> + </cmdsynopsis> + <para>Display each <replaceable>field</replaceable> of the entry + identified by <replaceable>id</replaceable>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Pipe entry fields to an external command</term> + <listitem> + <cmdsynopsis> + <command>pipe</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + <arg choice="plain" rep="repeat"> + <replaceable>field</replaceable> + </arg> + <arg choice="plain"> + <replaceable>command</replaceable> + </arg> + </cmdsynopsis> + <cmdsynopsis> + <command>p</command> + <arg choice="plain"> + <replaceable>id</replaceable> + </arg> + <arg choice="plain" rep="repeat"> + <replaceable>field</replaceable> + </arg> + <arg choice="plain"> + <replaceable>command</replaceable> + </arg> + <sbr/> + </cmdsynopsis> + <para>Pipe the content of each given + <replaceable>field</replaceable> of the entry identified by id to + command which must be a single argument. The command is executed by + invoking the <command>sh</command> utility with the <arg>-c</arg> + option and <replaceable>command</replaceable> as its option + argument, thus special care should be applied to quoting command. + See the <citerefentry><refentrytitle>sh</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> manual page for + details.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Create empty group</term> + <listitem> + <cmdsynopsis> + <command>creategroup</command> + <arg choice="plain"> + <replaceable>name</replaceable> + </arg> + </cmdsynopsis> + <cmdsynopsis> + <command>cg</command> + <arg choice="plain"> + <replaceable>name</replaceable> + </arg> + <sbr/> + </cmdsynopsis> + <para>Create a new empty group named + <replaceable>name</replaceable>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Remove empty group</term> + <listitem> + <cmdsynopsis> + <command>removegroup</command> + <arg choice="plain"> + <replaceable>name</replaceable> + </arg> + </cmdsynopsis> + <cmdsynopsis> + <command>rg</command> + <arg choice="plain"> + <replaceable>name</replaceable> + </arg> + <sbr/> + </cmdsynopsis> + <para>Remove the empty group named + <replaceable>name</replaceable>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Change the master password</term> + <listitem> + <cmdsynopsis> + <command>changepassword</command> + </cmdsynopsis> + <cmdsynopsis> + <command>ch</command> + <sbr/> + </cmdsynopsis> + <para>Change the master password.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Display help text</term> + <listitem> + <cmdsynopsis> + <command>help</command> + </cmdsynopsis> + <cmdsynopsis> + <command>h</command> + <sbr/> + </cmdsynopsis> + <para>Display a list of all commands and a short help text.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Write database</term> + <listitem> + <cmdsynopsis> + <command>write</command> + </cmdsynopsis> + <cmdsynopsis> + <command>w</command> + <sbr/> + </cmdsynopsis> + <para>Write all changes back to the password database.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Quit</term> + <listitem> + <cmdsynopsis> + <command>quit</command> + </cmdsynopsis> + <cmdsynopsis> + <command>q</command> + <sbr/> + </cmdsynopsis> + <para>Quit <command>pwm</command>.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect2> + </refsect1> + <refsect1> + <title>File Format</title> + <para>The canonical description of the file format is included with the + distribution of the <citerefentry><refentrytitle>pwsafe</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> utility.</para> + </refsect1> + <refsect1> + <title>Environment Variables</title> + <variablelist> + <varlistentry> + <term> + <literal>LANG</literal> + </term> + <term> + <literal>LC_ALL</literal> + </term> + <listitem> + <para>See <citerefentry><refentrytitle>locale</refentrytitle> + <manvolnum>5</manvolnum></citerefentry></para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1> + <title>Exit Status</title> + <para>The following exit values are returned:</para> + <variablelist> + <varlistentry> + <term>0</term> + <listitem> + <para>Command successfully executed.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>1</term> + <listitem> + <para>An unspecified error has occured.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>2</term> + <listitem> + <para>Invalid command line options were specified.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1> + <title>Files</title> + <variablelist> + <varlistentry> + <term><filename>~/.pwm/pwm.psafe3</filename></term> + <listitem> + <para>default password database</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1> + <title>See Also</title> + <para><citerefentry><refentrytitle>pwsafe</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sh</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>locale</refentrytitle> + <manvolnum>5</manvolnum></citerefentry>, + <link xlink:href="https://pwsafe.org/"/></para> + </refsect1> +</refentry>