projects/pwm

annotate pwm.1.xml @ 26:5bdea77d0c1d

Add pwm-clip utility for setting the X11 CLIPBOARD selection
author Guido Berhoerster <guido+pwm@berhoerster.name>
date Thu Sep 21 09:45:59 2017 +0200 (2017-09-21)
parents 1b89066d992c
children 722a45b4028b
rev   line source
guido+pwm@1 1 <?xml version="1.0"?>
guido+pwm@1 2 <!--
guido+pwm@1 3
guido+pwm@1 4 Copyright (C) 2017 Guido Berhoerster <guido+pwm@berhoerster.name>
guido+pwm@1 5
guido+pwm@1 6 Permission is hereby granted, free of charge, to any person obtaining
guido+pwm@1 7 a copy of this software and associated documentation files (the
guido+pwm@1 8 "Software"), to deal in the Software without restriction, including
guido+pwm@1 9 without limitation the rights to use, copy, modify, merge, publish,
guido+pwm@1 10 distribute, sublicense, and/or sell copies of the Software, and to
guido+pwm@1 11 permit persons to whom the Software is furnished to do so, subject to
guido+pwm@1 12 the following conditions:
guido+pwm@1 13
guido+pwm@1 14 The above copyright notice and this permission notice shall be included
guido+pwm@1 15 in all copies or substantial portions of the Software.
guido+pwm@1 16
guido+pwm@1 17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
guido+pwm@1 18 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
guido+pwm@1 19 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
guido+pwm@1 20 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
guido+pwm@1 21 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
guido+pwm@1 22 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
guido+pwm@1 23 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
guido+pwm@1 24
guido+pwm@1 25 -->
guido+pwm@1 26 <refentry xmlns="http://docbook.org/ns/docbook"
guido+pwm@1 27 xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en">
guido+pwm@1 28 <info>
guido+pwm@1 29 <author>
guido+pwm@1 30 <personname>
guido+pwm@1 31 <firstname>Guido</firstname>
guido+pwm@1 32 <surname>Berhoerster</surname>
guido+pwm@1 33 </personname>
guido+pwm@1 34 <email>guido+pwm@berhoerster.name</email>
guido+pwm@1 35 <personblurb/>
guido+pwm@1 36 </author>
guido+pwm@23 37 <date>17 September, 2017</date>
guido+pwm@1 38 </info>
guido+pwm@1 39 <refmeta>
guido+pwm@1 40 <refentrytitle>pwm</refentrytitle>
guido+pwm@1 41 <manvolnum>1</manvolnum>
guido+pwm@1 42 <refmiscinfo class="source"/>
guido+pwm@1 43 <refmiscinfo class="version"/>
guido+pwm@1 44 <refmiscinfo class="manual">User Commands</refmiscinfo>
guido+pwm@1 45 </refmeta>
guido+pwm@1 46 <refnamediv>
guido+pwm@1 47 <refname>pwm</refname>
guido+pwm@1 48 <refpurpose>password manager</refpurpose>
guido+pwm@1 49 </refnamediv>
guido+pwm@1 50 <refsynopsisdiv>
guido+pwm@1 51 <cmdsynopsis>
guido+pwm@1 52 <command>pwm</command>
guido+pwm@1 53 <arg choice="opt">
guido+pwm@1 54 <option>-P</option>
guido+pwm@1 55 <replaceable>password_file</replaceable>
guido+pwm@1 56 </arg>
guido+pwm@1 57 <arg choice="opt">
guido+pwm@23 58 <option>-R</option>
guido+pwm@23 59 </arg>
guido+pwm@23 60 <arg choice="opt">
guido+pwm@1 61 <replaceable>database_file</replaceable>
guido+pwm@1 62 </arg>
guido+pwm@1 63 </cmdsynopsis>
guido+pwm@1 64 </refsynopsisdiv>
guido+pwm@1 65 <refsect1>
guido+pwm@1 66 <title>Description</title>
guido+pwm@1 67 <para>The <command>pwm</command> utility is a password manager which
guido+pwm@1 68 stores passwords and associated metadata in an encrypted database protected
guido+pwm@1 69 by a master password. It offers both a text-based user interface for
guido+pwm@1 70 interactive use as well as a non-interactive mode. The database uses the
guido+pwm@1 71 PasswordSafe database version 3 file format and thus provides
guido+pwm@1 72 interoperabity with other password managers using the same format.</para>
guido+pwm@1 73 <para>After opening an existing database or creating a new one,
guido+pwm@1 74 <command>pwm</command> provides commands to create, modify, delete, and
guido+pwm@1 75 display password database entries which may be organized in groups. The
guido+pwm@1 76 contents of a field of a given entry can also be piped to an external
guido+pwm@26 77 command such as the <citerefentry><refentrytitle>pwm-clip</refentrytitle>
guido+pwm@26 78 <manvolnum>1</manvolnum></citerefentry> utility in order to copy the
guido+pwm@26 79 content of the username or password field of an entry to the
guido+pwm@26 80 clipboard.</para>
guido+pwm@1 81 <para>If specified, <command>pwm</command> will open or create
guido+pwm@1 82 <replaceable>database_file</replaceable> instead of the user's default
guido+pwm@1 83 database.</para>
guido+pwm@1 84 <para><command>pwm</command> must be run with a locale which uses the UTF-8
guido+pwm@1 85 character encoding.</para>
guido+pwm@1 86 <refsect2>
guido+pwm@1 87 <title>Output format</title>
guido+pwm@10 88 <para>The <command>show</command> and <command>info</command> commands
guido+pwm@10 89 display fields by printing the field name followed by a colon, one or
guido+pwm@10 90 more space characters and the field's verbatim content to the standard
guido+pwm@10 91 output stream. Field content may contain newlines, non-printable and/or
guido+pwm@10 92 control characters.</para>
guido+pwm@17 93 <para>If running in interactive mode, the <command>list</command>,
guido+pwm@17 94 <command>show</command> and <command>info</command> will display
guido+pwm@17 95 the results on a page-by-page basis using an internal pager.</para>
guido+pwm@1 96 <para>The <command>pipe</command> prints the verbatim field content to the
guido+pwm@1 97 standard input stream of the given command.</para>
guido+pwm@1 98 <para>Error messages are printed to the standard error stream.</para>
guido+pwm@1 99 </refsect2>
guido+pwm@1 100 </refsect1>
guido+pwm@1 101 <refsect1>
guido+pwm@1 102 <title>Options</title>
guido+pwm@1 103 <para>The following options are supported:</para>
guido+pwm@1 104 <variablelist>
guido+pwm@1 105 <varlistentry>
guido+pwm@1 106 <term>
guido+pwm@1 107 <option>-P</option>
guido+pwm@1 108 <replaceable>password_file</replaceable>
guido+pwm@1 109 </term>
guido+pwm@1 110 <listitem>
guido+pwm@1 111 <para>Read the master password from the first line of
guido+pwm@1 112 <replaceable>password_file</replaceable>.</para>
guido+pwm@1 113 </listitem>
guido+pwm@1 114 </varlistentry>
guido+pwm@23 115 <varlistentry>
guido+pwm@23 116 <term>
guido+pwm@23 117 <option>-R</option>
guido+pwm@23 118 </term>
guido+pwm@23 119 <listitem>
guido+pwm@23 120 <para>Treat the database as read-only and disallow any modifications
guido+pwm@23 121 and write operations.</para>
guido+pwm@23 122 </listitem>
guido+pwm@23 123 </varlistentry>
guido+pwm@1 124 </variablelist>
guido+pwm@1 125 </refsect1>
guido+pwm@1 126 <refsect1>
guido+pwm@1 127 <title>Usage</title>
guido+pwm@1 128 <para>If stdin is connected to a terminal pwm will run in interactive mode
guido+pwm@1 129 and prompt the user for the master password unless
guido+pwm@1 130 <replaceable>password_file</replaceable> is specified via the
guido+pwm@1 131 <option>-P</option> option. After successfully opening the password
guido+pwm@1 132 database the user will be prompted for a command.</para>
guido+pwm@1 133 <para>When running in non-interactive mode a file containing the master
guido+pwm@1 134 pasword must be specified via the <option>-P</option> option and after
guido+pwm@1 135 successfully opening the password database, pwm will execute commands read
guido+pwm@1 136 from stdin until either an error occurrs or end-of-file is reached.</para>
guido+pwm@1 137 <para><command>pwm</command> operates on a copy of the password database
guido+pwm@1 138 in memory, any changes must be explicitly written back to the database
guido+pwm@1 139 using the write command.</para>
guido+pwm@1 140 <refsect2>
guido+pwm@1 141 <title>IDs</title>
guido+pwm@1 142 <para>Database entries are referred to by an ID value which is a
guido+pwm@1 143 positive integer value that is guaranteed to be unqiue during the run
guido+pwm@1 144 time of the pwm utility.</para>
guido+pwm@1 145 </refsect2>
guido+pwm@1 146 <refsect2>
guido+pwm@1 147 <title>Fields</title>
guido+pwm@10 148 <para>The following entry fields are supported:</para>
guido+pwm@10 149 <table xml:id="field-table">
guido+pwm@10 150 <title>Fields and their identifiers</title>
guido+pwm@10 151 <tgroup cols="2" align="left" colsep="1" rowsep="1">
guido+pwm@10 152 <thead>
guido+pwm@10 153 <row>
guido+pwm@10 154 <entry>Field</entry>
guido+pwm@10 155 <entry>Field Identifier</entry>
guido+pwm@10 156 </row>
guido+pwm@10 157 </thead>
guido+pwm@10 158 <tbody>
guido+pwm@10 159 <row>
guido+pwm@10 160 <entry>Group</entry>
guido+pwm@10 161 <entry>group</entry>
guido+pwm@10 162 </row>
guido+pwm@10 163 <row>
guido+pwm@10 164 <entry>Title</entry>
guido+pwm@10 165 <entry>title</entry>
guido+pwm@10 166 </row>
guido+pwm@10 167 <row>
guido+pwm@10 168 <entry>Username</entry>
guido+pwm@10 169 <entry>username</entry>
guido+pwm@10 170 </row>
guido+pwm@10 171 <row>
guido+pwm@10 172 <entry>Password</entry>
guido+pwm@10 173 <entry>password</entry>
guido+pwm@10 174 </row>
guido+pwm@10 175 <row>
guido+pwm@10 176 <entry>Notes</entry>
guido+pwm@10 177 <entry>notes</entry>
guido+pwm@10 178 </row>
guido+pwm@10 179 <row>
guido+pwm@10 180 <entry>URL</entry>
guido+pwm@10 181 <entry>url</entry>
guido+pwm@10 182 </row>
guido+pwm@10 183 <row>
guido+pwm@10 184 <entry>Creation Time</entry>
guido+pwm@10 185 <entry>ctime</entry>
guido+pwm@10 186 </row>
guido+pwm@10 187 <row>
guido+pwm@10 188 <entry>Modification Time</entry>
guido+pwm@10 189 <entry>mtime</entry>
guido+pwm@10 190 </row>
guido+pwm@10 191 </tbody>
guido+pwm@10 192 </tgroup>
guido+pwm@10 193 </table>
guido+pwm@1 194 <para>Other, existing fields specified by the PasswordSafe file format
guido+pwm@1 195 will be preserved but cannot be displayed or modified.</para>
guido+pwm@1 196 </refsect2>
guido+pwm@1 197 <refsect2>
guido+pwm@1 198 <title>Commands</title>
guido+pwm@1 199 <para>Each command must appear on a seperate line terminated by a newline
guido+pwm@1 200 character. The command and its arguments are seperated by whitespace,
guido+pwm@1 201 i.e. one or more space or tab characters. If an argument contains
guido+pwm@1 202 whitespace characters it must either be quoted by encosing it in single
guido+pwm@1 203 or double quote characters or each whitespace character must be preceded
guido+pwm@1 204 by a backslash character. Arguments quoted with a single or double quote
guido+pwm@1 205 character preserve the literal values of all characters with the
guido+pwm@1 206 exception of the backslash character which can be used to escape the
guido+pwm@1 207 respective quoting character. Two consecutive backslash characters yield
guido+pwm@1 208 a literal backslash within both quoted and unquoted arguments. A line
guido+pwm@1 209 must not end in a single backslash character, any other backslash
guido+pwm@1 210 characters are ignored.</para>
guido+pwm@1 211 <para>If an error occurrs while parsing or executing a command,
guido+pwm@1 212 <command>pwm</command> will terminate when running in non-interactive
guido+pwm@1 213 mode. In interactive mode it will print an error message and prompt the
guido+pwm@1 214 user for the next command. The following commands are supported:</para>
guido+pwm@1 215 <variablelist>
guido+pwm@1 216 <varlistentry>
guido+pwm@1 217 <term>List entries</term>
guido+pwm@1 218 <listitem>
guido+pwm@1 219 <cmdsynopsis>
guido+pwm@1 220 <command>list</command>
guido+pwm@11 221 <arg choice="opt" rep="repeat">
guido+pwm@11 222 <replaceable>field</replaceable>~<replaceable>regex</replaceable>
guido+pwm@11 223 </arg>
guido+pwm@1 224 </cmdsynopsis>
guido+pwm@1 225 <cmdsynopsis>
guido+pwm@1 226 <command>ls</command>
guido+pwm@11 227 <arg choice="opt" rep="repeat">
guido+pwm@11 228 <replaceable>field</replaceable>~<replaceable>regex</replaceable>
guido+pwm@11 229 </arg>
guido+pwm@1 230 <sbr/>
guido+pwm@1 231 </cmdsynopsis>
guido+pwm@11 232 <para>List password database entries. If one or more filter
guido+pwm@11 233 expressions are specified, limit the displayed entries to those
guido+pwm@11 234 whose <replaceable>field</replaceable> content matches the extended
guido+pwm@11 235 regular expression <replaceable>regex</replaceable>.</para>
guido+pwm@1 236 </listitem>
guido+pwm@1 237 </varlistentry>
guido+pwm@1 238 <varlistentry>
guido+pwm@1 239 <term>Create entry</term>
guido+pwm@1 240 <listitem>
guido+pwm@1 241 <cmdsynopsis>
guido+pwm@1 242 <command>create</command>
guido+pwm@1 243 <arg choice="opt" rep="repeat">
guido+pwm@1 244 <replaceable>field</replaceable>=<replaceable>value</replaceable>
guido+pwm@1 245 </arg>
guido+pwm@1 246 </cmdsynopsis>
guido+pwm@1 247 <cmdsynopsis>
guido+pwm@1 248 <command>c</command>
guido+pwm@1 249 <arg choice="opt" rep="repeat">
guido+pwm@1 250 <replaceable>field</replaceable>=<replaceable>value</replaceable>
guido+pwm@1 251 </arg>
guido+pwm@1 252 <sbr/>
guido+pwm@1 253 </cmdsynopsis>
guido+pwm@1 254 <para>Create a new entry assigning each given
guido+pwm@1 255 <replaceable>field</replaceable> to the corresponsing
guido+pwm@1 256 <replaceable>value</replaceable>.</para>
guido+pwm@22 257 <para>If no fields are specified in interactive mode,
guido+pwm@22 258 <command>pwm</command> will prompt the user for the content of
guido+pwm@22 259 each field.</para>
guido+pwm@1 260 </listitem>
guido+pwm@1 261 </varlistentry>
guido+pwm@1 262 <varlistentry>
guido+pwm@1 263 <term>Modify entry</term>
guido+pwm@1 264 <listitem>
guido+pwm@1 265 <cmdsynopsis>
guido+pwm@1 266 <command>modify</command>
guido+pwm@1 267 <arg choice="plain">
guido+pwm@1 268 <replaceable>id</replaceable>
guido+pwm@1 269 </arg>
guido+pwm@1 270 <arg choice="opt" rep="repeat">
guido+pwm@1 271 <replaceable>field</replaceable>=<replaceable>value</replaceable>
guido+pwm@1 272 </arg>
guido+pwm@1 273 </cmdsynopsis>
guido+pwm@1 274 <cmdsynopsis>
guido+pwm@1 275 <command>m</command>
guido+pwm@1 276 <arg choice="plain">
guido+pwm@1 277 <replaceable>id</replaceable>
guido+pwm@1 278 </arg>
guido+pwm@1 279 <arg choice="opt" rep="repeat">
guido+pwm@1 280 <replaceable>field</replaceable>=<replaceable>value</replaceable>
guido+pwm@1 281 </arg>
guido+pwm@1 282 <sbr/>
guido+pwm@1 283 </cmdsynopsis>
guido+pwm@1 284 <para>Modify an existing entry identified by
guido+pwm@1 285 <replaceable>id</replaceable> assigning each given
guido+pwm@1 286 <replaceable>field</replaceable> to the corresponsing
guido+pwm@1 287 <replaceable>value</replaceable>.</para>
guido+pwm@22 288 <para>If no fields are specified and <command>pwm</command> is
guido+pwm@22 289 running in interactive mode, it will prompt the user for the
guido+pwm@22 290 content of each field, allowing him to edit any previous
guido+pwm@22 291 content.</para>
guido+pwm@1 292 </listitem>
guido+pwm@1 293 </varlistentry>
guido+pwm@1 294 <varlistentry>
guido+pwm@1 295 <term>Remove entry</term>
guido+pwm@1 296 <listitem>
guido+pwm@1 297 <cmdsynopsis>
guido+pwm@1 298 <command>remove</command>
guido+pwm@1 299 <arg choice="plain">
guido+pwm@1 300 <replaceable>id</replaceable>
guido+pwm@1 301 </arg>
guido+pwm@1 302 </cmdsynopsis>
guido+pwm@1 303 <cmdsynopsis>
guido+pwm@1 304 <command>rm</command>
guido+pwm@1 305 <arg choice="plain">
guido+pwm@1 306 <replaceable>id</replaceable>
guido+pwm@1 307 </arg>
guido+pwm@1 308 <sbr/>
guido+pwm@1 309 </cmdsynopsis>
guido+pwm@1 310 <para>Remove an existing entry identified by
guido+pwm@1 311 <replaceable>id</replaceable>.</para>
guido+pwm@1 312 </listitem>
guido+pwm@1 313 </varlistentry>
guido+pwm@1 314 <varlistentry>
guido+pwm@1 315 <term>Display entry fields</term>
guido+pwm@1 316 <listitem>
guido+pwm@1 317 <cmdsynopsis>
guido+pwm@1 318 <command>show</command>
guido+pwm@1 319 <arg choice="plain">
guido+pwm@1 320 <replaceable>id</replaceable>
guido+pwm@1 321 </arg>
guido+pwm@1 322 <arg choice="opt" rep="repeat">
guido+pwm@1 323 <replaceable>field</replaceable>
guido+pwm@1 324 </arg>
guido+pwm@1 325 </cmdsynopsis>
guido+pwm@1 326 <cmdsynopsis>
guido+pwm@1 327 <command>s</command>
guido+pwm@1 328 <arg choice="plain">
guido+pwm@1 329 <replaceable>id</replaceable>
guido+pwm@1 330 </arg>
guido+pwm@1 331 <arg choice="opt" rep="repeat">
guido+pwm@1 332 <replaceable>field</replaceable>
guido+pwm@1 333 </arg>
guido+pwm@1 334 <sbr/>
guido+pwm@1 335 </cmdsynopsis>
guido+pwm@1 336 <para>Display each <replaceable>field</replaceable> of the entry
guido+pwm@15 337 identified by <replaceable>id</replaceable>. If no field is
guido+pwm@15 338 specified, display all fields except the password field.</para>
guido+pwm@1 339 </listitem>
guido+pwm@1 340 </varlistentry>
guido+pwm@1 341 <varlistentry>
guido+pwm@1 342 <term>Pipe entry fields to an external command</term>
guido+pwm@1 343 <listitem>
guido+pwm@1 344 <cmdsynopsis>
guido+pwm@1 345 <command>pipe</command>
guido+pwm@1 346 <arg choice="plain">
guido+pwm@1 347 <replaceable>id</replaceable>
guido+pwm@1 348 </arg>
guido+pwm@1 349 <arg choice="plain" rep="repeat">
guido+pwm@1 350 <replaceable>field</replaceable>
guido+pwm@1 351 </arg>
guido+pwm@1 352 <arg choice="plain">
guido+pwm@1 353 <replaceable>command</replaceable>
guido+pwm@1 354 </arg>
guido+pwm@1 355 </cmdsynopsis>
guido+pwm@1 356 <cmdsynopsis>
guido+pwm@1 357 <command>p</command>
guido+pwm@1 358 <arg choice="plain">
guido+pwm@1 359 <replaceable>id</replaceable>
guido+pwm@1 360 </arg>
guido+pwm@1 361 <arg choice="plain" rep="repeat">
guido+pwm@1 362 <replaceable>field</replaceable>
guido+pwm@1 363 </arg>
guido+pwm@1 364 <arg choice="plain">
guido+pwm@1 365 <replaceable>command</replaceable>
guido+pwm@1 366 </arg>
guido+pwm@1 367 <sbr/>
guido+pwm@1 368 </cmdsynopsis>
guido+pwm@1 369 <para>Pipe the content of each given
guido+pwm@1 370 <replaceable>field</replaceable> of the entry identified by id to
guido+pwm@1 371 command which must be a single argument. The command is executed by
guido+pwm@1 372 invoking the <command>sh</command> utility with the <arg>-c</arg>
guido+pwm@1 373 option and <replaceable>command</replaceable> as its option
guido+pwm@1 374 argument, thus special care should be applied to quoting command.
guido+pwm@1 375 See the <citerefentry><refentrytitle>sh</refentrytitle>
guido+pwm@1 376 <manvolnum>1</manvolnum></citerefentry> manual page for
guido+pwm@1 377 details.</para>
guido+pwm@1 378 </listitem>
guido+pwm@1 379 </varlistentry>
guido+pwm@1 380 <varlistentry>
guido+pwm@1 381 <term>Create empty group</term>
guido+pwm@1 382 <listitem>
guido+pwm@1 383 <cmdsynopsis>
guido+pwm@1 384 <command>creategroup</command>
guido+pwm@1 385 <arg choice="plain">
guido+pwm@1 386 <replaceable>name</replaceable>
guido+pwm@1 387 </arg>
guido+pwm@1 388 </cmdsynopsis>
guido+pwm@1 389 <cmdsynopsis>
guido+pwm@1 390 <command>cg</command>
guido+pwm@1 391 <arg choice="plain">
guido+pwm@1 392 <replaceable>name</replaceable>
guido+pwm@1 393 </arg>
guido+pwm@1 394 <sbr/>
guido+pwm@1 395 </cmdsynopsis>
guido+pwm@1 396 <para>Create a new empty group named
guido+pwm@1 397 <replaceable>name</replaceable>.</para>
guido+pwm@22 398 <para>In interactive-mode the <replaceable>name</replaceable>
guido+pwm@22 399 argument is optional, if it is not specified <command>pwm</command>
guido+pwm@22 400 will prompt the user for it.</para>
guido+pwm@1 401 </listitem>
guido+pwm@1 402 </varlistentry>
guido+pwm@1 403 <varlistentry>
guido+pwm@1 404 <term>Remove empty group</term>
guido+pwm@1 405 <listitem>
guido+pwm@1 406 <cmdsynopsis>
guido+pwm@1 407 <command>removegroup</command>
guido+pwm@1 408 <arg choice="plain">
guido+pwm@1 409 <replaceable>name</replaceable>
guido+pwm@1 410 </arg>
guido+pwm@1 411 </cmdsynopsis>
guido+pwm@1 412 <cmdsynopsis>
guido+pwm@1 413 <command>rg</command>
guido+pwm@1 414 <arg choice="plain">
guido+pwm@1 415 <replaceable>name</replaceable>
guido+pwm@1 416 </arg>
guido+pwm@1 417 <sbr/>
guido+pwm@1 418 </cmdsynopsis>
guido+pwm@1 419 <para>Remove the empty group named
guido+pwm@1 420 <replaceable>name</replaceable>.</para>
guido+pwm@1 421 </listitem>
guido+pwm@1 422 </varlistentry>
guido+pwm@1 423 <varlistentry>
guido+pwm@12 424 <term>Generate a random password</term>
guido+pwm@12 425 <listitem>
guido+pwm@12 426 <cmdsynopsis>
guido+pwm@12 427 <command>generatepassword</command>
guido+pwm@12 428 <arg choice="opt">
guido+pwm@12 429 <replaceable>id</replaceable>
guido+pwm@12 430 </arg>
guido+pwm@12 431 <arg choice="opt">
guido+pwm@12 432 len=<replaceable>n</replaceable>
guido+pwm@12 433 </arg>
guido+pwm@12 434 <arg choice="opt" rep="repeat">
guido+pwm@12 435 chars=<replaceable>n</replaceable>:<replaceable>chars</replaceable>
guido+pwm@12 436 </arg>
guido+pwm@12 437 <arg choice="opt" rep="repeat">
guido+pwm@12 438 charclass=<replaceable>n</replaceable>:<replaceable>class</replaceable>
guido+pwm@12 439 </arg>
guido+pwm@12 440 </cmdsynopsis>
guido+pwm@12 441 <cmdsynopsis>
guido+pwm@12 442 <command>gp</command>
guido+pwm@12 443 <arg choice="opt">
guido+pwm@12 444 <replaceable>id</replaceable>
guido+pwm@12 445 </arg>
guido+pwm@12 446 <arg choice="opt">
guido+pwm@12 447 len=<replaceable>n</replaceable>
guido+pwm@12 448 </arg>
guido+pwm@12 449 <arg choice="opt" rep="repeat">
guido+pwm@12 450 chars=<replaceable>n</replaceable>:<replaceable>chars</replaceable>
guido+pwm@12 451 </arg>
guido+pwm@12 452 <arg choice="opt" rep="repeat">
guido+pwm@12 453 charclass=<replaceable>n</replaceable>:<replaceable>class</replaceable>
guido+pwm@12 454 </arg>
guido+pwm@12 455 <sbr/>
guido+pwm@12 456 </cmdsynopsis>
guido+pwm@12 457 <para>Randomly generate a new password according to the specified
guido+pwm@12 458 constraints. The <literal>len</literal> argument sets the length of
guido+pwm@12 459 the generated password to <replaceable>n</replaceable> characters.
guido+pwm@12 460 The <literal>chars</literal> argument constrains the password to
guido+pwm@12 461 <replaceable>n</replaceable> from the set of characters
guido+pwm@12 462 <replaceable>chars</replaceable>. Similarly, the
guido+pwm@12 463 <literal>charclass</literal> argument to
guido+pwm@12 464 <replaceable>n</replaceable> characters from the extended regular
guido+pwm@12 465 expression character class <replaceable>class</replaceable>.
guido+pwm@12 466 Multiple <literal>char</literal> and <literal>charclass</literal>
guido+pwm@12 467 arguments may be specified, in which case the generated passwords
guido+pwm@12 468 match all of them.</para>
guido+pwm@12 469 </listitem>
guido+pwm@12 470 </varlistentry>
guido+pwm@12 471 <varlistentry>
guido+pwm@1 472 <term>Change the master password</term>
guido+pwm@1 473 <listitem>
guido+pwm@1 474 <cmdsynopsis>
guido+pwm@1 475 <command>changepassword</command>
guido+pwm@1 476 </cmdsynopsis>
guido+pwm@1 477 <cmdsynopsis>
guido+pwm@1 478 <command>ch</command>
guido+pwm@1 479 <sbr/>
guido+pwm@1 480 </cmdsynopsis>
guido+pwm@1 481 <para>Change the master password.</para>
guido+pwm@1 482 </listitem>
guido+pwm@1 483 </varlistentry>
guido+pwm@1 484 <varlistentry>
guido+pwm@1 485 <term>Display help text</term>
guido+pwm@1 486 <listitem>
guido+pwm@1 487 <cmdsynopsis>
guido+pwm@1 488 <command>help</command>
guido+pwm@14 489 <arg choice="opt">
guido+pwm@14 490 <replaceable>command</replaceable>
guido+pwm@14 491 </arg>
guido+pwm@1 492 </cmdsynopsis>
guido+pwm@1 493 <cmdsynopsis>
guido+pwm@1 494 <command>h</command>
guido+pwm@14 495 <arg choice="opt">
guido+pwm@14 496 <replaceable>command</replaceable>
guido+pwm@14 497 </arg>
guido+pwm@1 498 <sbr/>
guido+pwm@1 499 </cmdsynopsis>
guido+pwm@14 500 <para>Display a summary of all commands or usage information for
guido+pwm@14 501 the specified <replaceable>command</replaceable>.</para>
guido+pwm@1 502 </listitem>
guido+pwm@1 503 </varlistentry>
guido+pwm@1 504 <varlistentry>
guido+pwm@10 505 <term>Show metadata information</term>
guido+pwm@10 506 <listitem>
guido+pwm@10 507 <cmdsynopsis>
guido+pwm@10 508 <command>info</command>
guido+pwm@10 509 </cmdsynopsis>
guido+pwm@10 510 <cmdsynopsis>
guido+pwm@10 511 <command>i</command>
guido+pwm@10 512 <sbr/>
guido+pwm@10 513 </cmdsynopsis>
guido+pwm@10 514 <para>Display metadata information such as the user who last wrote
guido+pwm@10 515 to the database, the time when the database was last written to,
guido+pwm@10 516 and the host on which the password database was last written
guido+pwm@10 517 to.</para>
guido+pwm@10 518 </listitem>
guido+pwm@10 519 </varlistentry>
guido+pwm@10 520 <varlistentry>
guido+pwm@16 521 <term>Display status messages</term>
guido+pwm@16 522 <listitem>
guido+pwm@16 523 <cmdsynopsis>
guido+pwm@16 524 <command>status</command>
guido+pwm@16 525 </cmdsynopsis>
guido+pwm@16 526 <cmdsynopsis>
guido+pwm@16 527 <command>t</command>
guido+pwm@16 528 <sbr/>
guido+pwm@16 529 </cmdsynopsis>
guido+pwm@16 530 <para>Redisplay any error message from the previous command and
guido+pwm@16 531 whether there are unsaved changes.</para>
guido+pwm@16 532 </listitem>
guido+pwm@16 533 </varlistentry>
guido+pwm@16 534 <varlistentry>
guido+pwm@1 535 <term>Write database</term>
guido+pwm@1 536 <listitem>
guido+pwm@1 537 <cmdsynopsis>
guido+pwm@1 538 <command>write</command>
guido+pwm@1 539 </cmdsynopsis>
guido+pwm@1 540 <cmdsynopsis>
guido+pwm@1 541 <command>w</command>
guido+pwm@1 542 <sbr/>
guido+pwm@1 543 </cmdsynopsis>
guido+pwm@1 544 <para>Write all changes back to the password database.</para>
guido+pwm@1 545 </listitem>
guido+pwm@1 546 </varlistentry>
guido+pwm@1 547 <varlistentry>
guido+pwm@1 548 <term>Quit</term>
guido+pwm@1 549 <listitem>
guido+pwm@1 550 <cmdsynopsis>
guido+pwm@1 551 <command>quit</command>
guido+pwm@1 552 </cmdsynopsis>
guido+pwm@1 553 <cmdsynopsis>
guido+pwm@1 554 <command>q</command>
guido+pwm@21 555 </cmdsynopsis>
guido+pwm@21 556 <cmdsynopsis>
guido+pwm@21 557 <keysym>end-of-file</keysym>
guido+pwm@1 558 <sbr/>
guido+pwm@1 559 </cmdsynopsis>
guido+pwm@13 560 <para>Quit <command>pwm</command>. If running in interactive mode
guido+pwm@13 561 and there are unsaved changes, <command>pwm</command> will not
guido+pwm@13 562 terminate but display a warning message. If the quit command is
guido+pwm@13 563 invoked twice consecutively, <command>pwm</command> will discard
guido+pwm@13 564 unsaved changes and terminate.</para>
guido+pwm@13 565 </listitem>
guido+pwm@13 566 </varlistentry>
guido+pwm@13 567 <varlistentry>
guido+pwm@13 568 <term>Quit and discard unsaved changes</term>
guido+pwm@13 569 <listitem>
guido+pwm@13 570 <cmdsynopsis>
guido+pwm@13 571 <command>Quit</command>
guido+pwm@13 572 </cmdsynopsis>
guido+pwm@13 573 <cmdsynopsis>
guido+pwm@13 574 <command>Q</command>
guido+pwm@13 575 <sbr/>
guido+pwm@13 576 </cmdsynopsis>
guido+pwm@13 577 <para>Quit <command>pwm</command> and discard any unsaved changes
guido+pwm@13 578 without a warning.</para>
guido+pwm@1 579 </listitem>
guido+pwm@1 580 </varlistentry>
guido+pwm@1 581 </variablelist>
guido+pwm@1 582 </refsect2>
guido+pwm@1 583 </refsect1>
guido+pwm@1 584 <refsect1>
guido+pwm@1 585 <title>File Format</title>
guido+pwm@1 586 <para>The canonical description of the file format is included with the
guido+pwm@1 587 distribution of the <citerefentry><refentrytitle>pwsafe</refentrytitle>
guido+pwm@1 588 <manvolnum>1</manvolnum></citerefentry> utility.</para>
guido+pwm@1 589 </refsect1>
guido+pwm@1 590 <refsect1>
guido+pwm@1 591 <title>Environment Variables</title>
guido+pwm@1 592 <variablelist>
guido+pwm@1 593 <varlistentry>
guido+pwm@1 594 <term>
guido+pwm@1 595 <literal>LANG</literal>
guido+pwm@1 596 </term>
guido+pwm@1 597 <term>
guido+pwm@1 598 <literal>LC_ALL</literal>
guido+pwm@1 599 </term>
guido+pwm@1 600 <listitem>
guido+pwm@1 601 <para>See <citerefentry><refentrytitle>locale</refentrytitle>
guido+pwm@1 602 <manvolnum>5</manvolnum></citerefentry></para>
guido+pwm@1 603 </listitem>
guido+pwm@1 604 </varlistentry>
guido+pwm@10 605 <varlistentry>
guido+pwm@10 606 <term>
guido+pwm@10 607 <literal>LOGNAME</literal>
guido+pwm@10 608 </term>
guido+pwm@10 609 <listitem>
guido+pwm@10 610 <para>The name of the logged in user which is recorded when writing
guido+pwm@10 611 the password database</para>
guido+pwm@10 612 </listitem>
guido+pwm@10 613 </varlistentry>
guido+pwm@1 614 </variablelist>
guido+pwm@1 615 </refsect1>
guido+pwm@1 616 <refsect1>
guido+pwm@1 617 <title>Exit Status</title>
guido+pwm@1 618 <para>The following exit values are returned:</para>
guido+pwm@1 619 <variablelist>
guido+pwm@1 620 <varlistentry>
guido+pwm@1 621 <term>0</term>
guido+pwm@1 622 <listitem>
guido+pwm@1 623 <para>Command successfully executed.</para>
guido+pwm@1 624 </listitem>
guido+pwm@1 625 </varlistentry>
guido+pwm@1 626 <varlistentry>
guido+pwm@1 627 <term>1</term>
guido+pwm@1 628 <listitem>
guido+pwm@1 629 <para>An unspecified error has occured.</para>
guido+pwm@1 630 </listitem>
guido+pwm@1 631 </varlistentry>
guido+pwm@1 632 <varlistentry>
guido+pwm@1 633 <term>2</term>
guido+pwm@1 634 <listitem>
guido+pwm@1 635 <para>Invalid command line options were specified.</para>
guido+pwm@1 636 </listitem>
guido+pwm@1 637 </varlistentry>
guido+pwm@1 638 </variablelist>
guido+pwm@1 639 </refsect1>
guido+pwm@1 640 <refsect1>
guido+pwm@20 641 <title>Asynchronous Events</title>
guido+pwm@20 642 <variablelist>
guido+pwm@20 643 <varlistentry>
guido+pwm@20 644 <term><literal>SIGINT</literal></term>
guido+pwm@20 645 <term><literal>SIGHUP</literal></term>
guido+pwm@20 646 <term><literal>SIGTERM</literal></term>
guido+pwm@20 647 <listitem>
guido+pwm@20 648 <para>If there are changes since the database was last written and
guido+pwm@20 649 <command>pwm</command> is running in interactive mode, it
guido+pwm@20 650 automatically writes a copy of the current database to the file
guido+pwm@20 651 <filename>~/.pwm/autosave.psafe3</filename> which may be used for
guido+pwm@20 652 recovery later.</para>
guido+pwm@20 653 </listitem>
guido+pwm@20 654 </varlistentry>
guido+pwm@20 655 </variablelist>
guido+pwm@20 656 </refsect1>
guido+pwm@20 657 <refsect1>
guido+pwm@1 658 <title>Files</title>
guido+pwm@1 659 <variablelist>
guido+pwm@1 660 <varlistentry>
guido+pwm@1 661 <term><filename>~/.pwm/pwm.psafe3</filename></term>
guido+pwm@1 662 <listitem>
guido+pwm@1 663 <para>default password database</para>
guido+pwm@1 664 </listitem>
guido+pwm@1 665 </varlistentry>
guido+pwm@20 666 <varlistentry>
guido+pwm@20 667 <term><filename>~/.pwm/autosave.psafe3</filename></term>
guido+pwm@20 668 <listitem>
guido+pwm@20 669 <para>automatic copy of the password database after receiving a fatal
guido+pwm@20 670 signal in interactive mode</para>
guido+pwm@20 671 </listitem>
guido+pwm@20 672 </varlistentry>
guido+pwm@1 673 </variablelist>
guido+pwm@1 674 </refsect1>
guido+pwm@1 675 <refsect1>
guido+pwm@1 676 <title>See Also</title>
guido+pwm@26 677 <para><citerefentry><refentrytitle>pwm-clip</refentrytitle>
guido+pwm@26 678 <manvolnum>1</manvolnum></citerefentry>,
guido+pwm@26 679 <citerefentry><refentrytitle>pwsafe</refentrytitle>
guido+pwm@1 680 <manvolnum>1</manvolnum></citerefentry>,
guido+pwm@1 681 <citerefentry><refentrytitle>sh</refentrytitle>
guido+pwm@1 682 <manvolnum>1</manvolnum></citerefentry>,
guido+pwm@1 683 <citerefentry><refentrytitle>locale</refentrytitle>
guido+pwm@1 684 <manvolnum>5</manvolnum></citerefentry>,
guido+pwm@11 685 <citerefentry><refentrytitle>regex</refentrytitle>
guido+pwm@11 686 <manvolnum>5</manvolnum></citerefentry>,
guido+pwm@1 687 <link xlink:href="https://pwsafe.org/"/></para>
guido+pwm@1 688 </refsect1>
guido+pwm@1 689 </refentry>