1PWMD(1) Password Manager Daemon PWMD(1)
2
3
4
6 pwmd - a universal data server
7
9 pwmd [options] [file1] [...]
10
11
13 pwmd is a daemon/server that serves clients data which is stored in an,
14 optionally encrypted and compressed, XML data file. Clients connect and
15 send commands that either retrieve or store data.
16
17
19 The following are the available command line options. Remaining argu‐
20 ments are files to add to the cache on startup.
21
22 --rcfile, -f rcfile
23 Specify an alternate configuration file. The default is
24 ~/.pwmd/config.
25
26
27 --import, -I filename --outfile filename
28 Imports an XML file. The XML file should be in conformance to
29 the pwmd DTD. See COMMANDS contained in the distributed pwmd
30 archive for details. If encryption is wanted (specified with the
31 iterations configuration parameter or the --iterations command
32 line switch), you will be prompted for a passphrase to encrypt
33 with. The output is written to the filename specified with the
34 --outfile command line switch which should then be placed in the
35 configured data_directory.
36
37
38 --iterations, -i iterations
39 The number of encryption iterations to use when importing. When
40 not specified, the iterations configuration option from the
41 global section will be used.
42
43
44 --key-file, -k keyfile
45 When importing (--import) or converting (--convert), obtain the
46 key from the specified filename. Be sure to set key_file in your
47 configuration.
48
49
50 --convert, -C filename --outfile filename
51 Converts a pwmd version 1 data file to a version 2 data file. If
52 encrypted, you will be prompted for a passphrase to use for
53 decryption (unless using a --key-file). The converted data file
54 will be saved to the filename specified with the --outfile com‐
55 mand line switch and with the same passphrase and iterations as
56 the version 1 data file.
57
58
59 --disable-dump, -D
60 Disable the XPATH, LIST and DUMP protocol commands. This over‐
61 rides any disable_list_and_dump configuration parameter.
62
63
64 --no-fork, -n
65 Run as a foreground process.
66
67
68 --no-pinentry, -P
69 Disable pinentry(1) use overriding any configuration setting.
70
71
72 --version
73 Version information.
74
75
76 --help Help text.
77
78
80 Blank lines and lines beginning with '#' are ignored. Some options can
81 have data file-specific settings by placing them in a file section. A
82 file section is declared by surrounding the filename with braces (i.e.,
83 [filename]). Global options may be specified in a [global] section and
84 are the default options for new or unspecified files. If the first
85 character of a string value is a tilde, it will be expanded to your
86 home directory. First the global options:
87
88 socket_path=<string>
89 Listen on the specified socket. The default is ~/.pwmd/socket.
90
91
92 socket_perms=<integer>
93 Permissions to set after creating the socket. This will override
94 any umask(2) setting.
95
96
97 allowed=<user,@group,...>
98 A comma separated list of local usernames or group names allowed
99 to connect to the socket. Groups should be prefixed with a '@'.
100 When not specified only the invoking user may connect. The user‐
101 name is obtained via SO_PEERCRED.
102
103
104 data_directory=<string>
105 Where pwmd should store and retrieve data files. The default is
106 ~/.pwmd/data.
107
108
109 disable_mlockall=<boolean>
110 When set to false, mlockall(2) will be called after the client
111 connects. This will use more physical memory but may also be
112 more secure. Most will probably find it overkill since the con‐
113 tents of all allocated memory is cleared before being freed.
114 Note that this doesn't affect the file cache which is always
115 stored in RAM (if possible).
116
117
118 log_path=<string>
119 Logs informational messages to the specified file. The default
120 is ~/.pwmd/log.
121
122
123 enable_logging=<boolean>
124 Enable or disable logging to log_path. The default is false.
125
126
127 syslog=<boolean>
128 Enable logging to syslog(8) with facility LOG_DAEMON and prior‐
129 ity LOG_INFO. The default is false.
130
131
132 log_level=<integer>
133 The logging level. When 0, only connections and errors are
134 logged. When 1, client commands are also logged. When 2, the
135 command arguments are also logged. The default is 0.
136
137
138 debug_file=<string>
139 When set, enable protocol debugging to the specified file. Note
140 that this logs all protocol IO so it may also log sensitive
141 data.
142
143
144 disable_list_and_dump=<boolean>
145 When true, the XPATH, LIST and DUMP protocol commands will be
146 disabled and will return an error code.
147
148
149 cache_push=<list>
150 A list of filenames separated with commas that will be pushed
151 into the file cache upon startup. pwmd will prompt for the key
152 for each file specified unless the key was specified with the
153 key or key_file parameters in a matching file section. The
154 default is none.
155
156
157 priority=<integer>
158 The priority, or niceness, of the server. The default is inher‐
159 ited from the parent process.
160
161
162 Below are options that can be specified in the [global] or [filename]
163 section. If in both then [filename] will have precedence.
164
165 backup=<boolean>
166 Whether to create a backup of the data file when saving. The
167 default is true. The backup filename has the .backup extension
168 appended to the opened file.
169
170
171 cache_timeout=<integer>
172 The number of seconds to keep the cache entry for this file. If
173 -1, the cache entry is kept forever. If 0, each time the file is
174 opened (if encrypted) or saved a key will be required.
175
176
177 enable_pinentry=<boolean>
178 If false, disable the use of pinentry(1). When disabled and a
179 file requires a passphrase, the passphrase must be included in
180 the command (see COMMANDS included in the archive). The default
181 is true. Also see PINENTRY below.
182
183
184 pinentry_path=<string>
185 The full path of the pinentry binary. The default is specified
186 at compile time.
187
188
189 pinentry_timeout=<integer>
190 The number of seconds before the pinentry dialog will terminate
191 while waiting for a passphrase. The default is 20. Set to 0 to
192 wait forever.
193
194
195 iterations=<integer>
196 The number of times to encrypt the data. A value of 10000 or
197 more will make dictionary attacks very slow depending on the CPU
198 and size of the data file. The default is 1 iteration. Setting
199 to 0 will disable encryption.
200
201
202 cipher=<string>
203 The default cipher to use when saving a data file. Valid values
204 are: aes128, aes192, aes256, serpent128, serpent192, serpent256,
205 camellia128, camellia192, camellia256, 3des, cast5, blowfish,
206 twofish128 and twofish256. The default is aes256.
207
208
209 iteration_progress=<integer>
210 After the specified number of iterations have been processed
211 while encrypting or decrypting, a status message with the key‐
212 word PROGRESS will be sent to the client. Setting to 0, the
213 default, disables sending these progress messages.
214
215
216 xfer_progress=<integer>
217 Commands that send data lines to the client can send the XFER
218 status message after the specified number of bytes have been
219 sent. The number of bytes is rounded to ASSUAN_LINELENGTH
220 (1002).
221
222
223 key=<string>
224 The initial passphrase to use for this file. If specified in the
225 global section then "global" is treated as a data filename and
226 not a default for other files. Note that if a client changes the
227 passphrase for this data file with the SAVE command, then this
228 value is not modified and will need to be updated by hand.
229
230
231 key_file=<string>
232 Same as the key option above but obtains the key from the speci‐
233 fied filename. Note that if the cache entry for this file gets
234 removed then the only way to add it again is to restart pwmd or
235 to re-read the configuration file (i.e., you won't be prompted
236 from pinentry).
237
238 Starting with pwmd version 2.14 the entire file is treated as
239 the passphrase including null bytes and newlines. A log message
240 will be displayed warning of the byte position that the key file
241 of previous versions will be truncated to, if any. This message
242 means that the byte position is really the length or size of the
243 key data which may not be the size of the key file. A fix for
244 this is to generate a new key file and import your data that was
245 exported via the DUMP command with the new key file.
246
247
248 compression_level=<integer>
249 The default compression level for data files from 1 to 9, 1
250 being the fastest but least compression and 9 being the slowest
251 but best compression. To disable compression entirely, set to 0.
252 The default is 6.
253
254
255 zlib_bufsize=<integer>
256 The input and output buffer size when compressing and decom‐
257 pressing. This affects how often the COMPRESS and DECOMPRESS
258 status messages are sent and also affects compression quality.
259 The default is 65536. Set to a higher value for larger files.
260
261
262 recursion_depth=<integer>
263 The maximum number of times to resolve a target attribute for a
264 single element in an element path. An error is returned when
265 this value is exceeded. The default is 20 but can be disabled by
266 setting to 0.
267
268
269 keepalive=<integer>
270 Sends keep alive status messages to the client every N seconds.
271 Set to 0 to disable. The default is 0. This option is depre‐
272 cated.
273
274
276 When enable_pinentry is true, commands that require a key will use
277 pinentry(1) to retrieve the passphrase. Since pwmd is normally a daemon
278 process, it isn't attached to any terminal. So pinentry needs to know
279 where to put it's dialog box by using command line options when exe‐
280 cuted. These can be set by either using protocol commands (see COMMANDS
281 included in the archive) or by creating a file ~/.pwmd/pinentry.conf.
282 When using this file, each line should contain NAME=VALUE pairs where
283 NAME is one of:
284
285 TTYNAME
286 The full path of the tty device.
287
288
289 TTYTYPE
290 The terminal type (i.e., vt100). Must be set when TTYNAME is
291 set.
292
293
294 DISPLAY
295 If using an X11 pinentry.
296
297
298 LC_CTYPE
299 For internationalization.
300
301
302 LC_MESSAGES
303 For internationalization.
304
305
306 PATH The full path to the pinentry binary. The default is
307 /usr/bin/pinentry.
308
309
310 The file is read only once after each client first connects. Note that
311 if your not using a DISPLAY, then both TTYNAME and TTYTYPE should be
312 set otherwise you'll get a segfault from ncurses.
313
314
316 SIGUSR1
317 Clears the entire file cache. If there are any clients con‐
318 nected, a key will be required for the next OPEN or SAVE com‐
319 mand.
320
321 SIGHUP Reloads the configuration file.
322
323 SIGTERM and SIGINT
324 Disallows new connections and waits for all clients to discon‐
325 nect before terminating.
326
327
329 ~/.pwmd/config
330 Default configuration file.
331
332 ~/.pwmd/data
333 Default data directory.
334
335 ~/.pwmd/socket
336 Default listening socket.
337
338 ~/.pwmd/log
339 Default log file when logging is enabled.
340
341 /usr/bin/pinentry
342 Default location of the pinentry binary.
343
344 ~/.pwmd/pinentry.conf
345 Default pinentry settings for new clients.
346
347
349 Ben Kibbey <bjk@luxsci.net>
350 PWMD Homepage ⟨http://bjk.sourceforge.net/pwmd/⟩.
351
352
354 pinentry(1)
355
356 Also see COMMANDS included in the archive for protocol commands and
357 syntax.
358
359
360
361Password Manager Daemon 23 Oct 2010 PWMD(1)