Added configuration parameter "recursion_depth". This specifies the
[pwmd.git] / doc / pwmd.1
blob67b923ad8e9b187b55f9e0a6239d87848e2708f2
1 .\" This program is free software; you can redistribute it and/or modify
2 .\" it under the terms of the GNU General Public License as published by
3 .\" the Free Software Foundation; either version 2 of the License, or
4 .\" (at your option) any later version.
5 .\" 
6 .\" This program is distributed in the hope that it will be useful,
7 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
8 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 .\" GNU General Public License for more details.
10 .\" 
11 .\" You should have received a copy of the GNU General Public License
12 .\" along with this program; if not, write to the Free Software
13 .\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
14 .de URL
15 \\$2 \(laURL: \\$1 \(ra\\$3
17 .if \n[.g] .mso www.tmac
18 .TH PWMD 1 "21 Sep 2007" "Password Manager Daemon" "Password Manager Daemon"
19 .SH NAME
21 pwmd \- local socket data server
22 .SH SYNOPSIS
23 .B pwmd
24 [\-hv] [\-f <rcfile>] [\-I <filename>] [\-D] [\-b] [file] [...]
26 .SH DESCRIPTION
27 .B pwmd
28 is a daemon that listens for connections on a local socket. Clients connect to
29 the server and can retrieve or modify "account" data. The word "account" is
30 just a placeholder for the element describing and item. But what the data
31 actually is can be anything. The data is stored in an AES encrypted XML file.
33 .SH OPTIONS
34 The following are the available command line options. Remaining arguments are
35 files to add to the cache on startup.
36 .TP
37 .I "\-f rcfile"
38 Specify an alternate configuration file. The default is \fI~/.pwmd/config\fR.
39 .TP
40 .I "\-I filename"
41 Import an XML file prompting for a key to use for encryption. The encrypted
42 data will be written to stdout.
43 .TP
44 .I "\-D"
45 Disable the LIST and DUMP protocol commands.
46 .TP
47 .I "\-b"
48 Run as a background process (daemonize).
49 .TP
50 .I "\-v"
51 Version information.
52 .TP
53 .I "\-h"
54 Help text.
56 .SH CONFIGURATION FILE
57 Blank lines and lines beginning with '#' are ignored. Some options can be
58 grouped together to have file specific settings. A file section is declared by
59 surrounding the filename with braces (i.e., \fI[filename]\fP). Default options
60 may be specified in a \fI[default]\fP section. If the first character of a
61 string value is a tilde, it will be expanded to your home directory. First the
62 global options:
63 .TP
64 .I "socket_path=<string>"
65 Listen on the specified socket. The default is \fI~/.pwmd/socket\fR.
66 .TP
67 .I "data_directory=<string>"
68 Where
69 .B pwmd
70 should store and retrieve data files. The default is \fI~/.pwmd/data\fR.
71 .TP
72 .I "disable_mlockall=<boolean>"
73 If set to "true" then
74 .B pwmd
75 won't call
76 .BR mlockall (2).
77 If you have resource limits beyond your control and
78 .B pwmd
79 is taking to much physical memory then this option may help at the cost of
80 security. The data might be swapped to virtual memory and later recovered.
81 Reguardless of this option
82 .BR mlock (2)
83 will still be used for the file cache if possible. The default is \fIfalse\fR.
84 .TP
85 .I "cache_size=<integer>"
86 Specfies the size of the file cache. Must be in multiples of your systems
87 \fBPAGE_SIZE\fR. The default is one page.
88 .TP
89 .I "log_path=<string>"
90 Logs informational messages to the specified file. The default is
91 \fI~/.pwmd/log\fR.
92 .TP
93 .I "enable_logging=<boolean>"
94 Enable or disable logging to \fIlog_path\fR. The default is \fIfalse\fR.
95 .TP
96 .I "cache_push=<list>"
97 A list of filenames separated by commas that will be pushed into the file
98 cache upon startup.
99 .B pwmd
100 will ask for the key for each file specified unless the key was specified with
101 the \fBkey\fR or \fBkey_file\fR parameters in a matching file section. The
102 default is none.
104 Below are options that can be in the \fI[default]\fP or \fI[filename]\fP
105 section. If in both, then \fI[filename]\fP will have precedence.
107 .I "cache_timeout=<integer>"
108 The number of seconds for the life of the cached file. If \fI-1\fP, the file
109 is cached forever. If \fI0\fP, each time the file is opened or saved a key
110 will be required.
112 .I "iterations=<integer>"
113 The number of times to encrypt the data. A value of 10000 or more will make
114 dictionary attacks very slow depending on the CPU. The default is \fI0\fP.
116 .I "iteration_progress=<integer>"
117 After the specified number of iterations while encrypting or decrypting, a
118 status message with the keyword \fBPROGRESS\fP will be sent to the client.
119 Setting to \fI0\fP, the default, disables sending progress messages.
121 .I "key=<string>"
122 The initial key to use for this file. If specified in the \fI[default]\fP
123 section then "\fIdefault\fP" is treated as a filename and not a default for
124 other files.
126 .I "key_file=<string>"
127 Same as above but obtain the key from the specified filename with the key
128 being on the first line of the file.
130 .I "compression_level=<integer>"
131 The default compression level for data files from \fI1\fP to \fI9\fP, \fI1\fP
132 being the fastest but least compression and \fI9\fP being the slowest but best
133 compression. To disable compression entirely, set to \fI0\fP. The default is
134 \fI6\fP.
136 .I "recursion_depth=<integer>"
137 The maximum number of times to resolve a target attribute for a single element
138 in an element path. An error is returned when this value is exceeded. The
139 default is \fI20\fP but can be disabled by setting to \fI0\fP.
140 .SH SIGNALS
142 .B SIGHUP
143 Clears the entire file cache. If there are any clients connected, a key will
144 be required for the next \fBOPEN\fP or \fBSAVE\fP command.
146 .B SIGUSR1
147 Reloads the configuration file.
149 .SH FILES
151 .B ~/.pwmd/config
152 Default configuration file.
154 .B ~/.pwmd/data
155 Default data directory.
157 .B ~/.pwmd/socket
158 Default listening socket.
160 .B ~/.pwmd/log
161 Default log file when logging is enabled.
163 .B /dev/shm/pwmd.<uid>
164 On Linux, and maybe other systems, where the file cache is stored for the
165 duration of the daemon. If your
166 .BR mmap (2)
167 supports MAP_ANONYMOUS with MAP_SHARED then no file will need to be created.
169 .SH AUTHOR
170 Ben Kibbey <bjk@luxsci.net>
172 .URL "http://bjk.sourceforge.net/pwmd/" "PWMD Homepage" .
174 .SH "SEE ALSO"
175 .BR shm_open (2),
176 .BR mlock (2),
177 .BR mlockall (2),
178 .BR libxml (3) ,
179 .BR mmap (2)
181 Also see \fBCOMMANDS\fP included in the archive for protocol commands.