/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk
129 by Teddy Hogeborn
* mandos-clients.conf.xml: Changed all single quotes to double quotes
1
<?xml version="1.0" encoding="UTF-8"?>
24.1.23 by Björn Påhlsson
Added manual pages for:
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
	"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
4
<!ENTITY COMMANDNAME "plugin-runner">
899 by Teddy Hogeborn
Update copyright year to 2017
5
<!ENTITY TIMESTAMP "2017-02-23">
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
6
<!ENTITY % common SYSTEM "common.ent">
7
%common;
24.1.23 by Björn Påhlsson
Added manual pages for:
8
]>
9
131 by Teddy Hogeborn
* Makefile: Make all DocBook rules include legalnotice.xml as a
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
24.1.23 by Björn Påhlsson
Added manual pages for:
11
  <refentryinfo>
112 by Teddy Hogeborn
* mandos-clients.conf.xml (/refentry/refentryinfo/title): Changed to
12
    <title>Mandos Manual</title>
129 by Teddy Hogeborn
* mandos-clients.conf.xml: Changed all single quotes to double quotes
13
    <!-- Nwalsh’s docbook scripts use this to generate the footer: -->
112 by Teddy Hogeborn
* mandos-clients.conf.xml (/refentry/refentryinfo/title): Changed to
14
    <productname>Mandos</productname>
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
15
    <productnumber>&version;</productnumber>
111 by Teddy Hogeborn
* mandos-clients.conf.xml (ENTITY TIMESTAMP): New. Automatically
16
    <date>&TIMESTAMP;</date>
24.1.23 by Björn Påhlsson
Added manual pages for:
17
    <authorgroup>
18
      <author>
19
	<firstname>Björn</firstname>
20
	<surname>Påhlsson</surname>
21
	<address>
505.1.2 by Teddy Hogeborn
Change "fukt.bsnet.se" to "recompile.se" throughout.
22
	  <email>belorn@recompile.se</email>
24.1.23 by Björn Påhlsson
Added manual pages for:
23
	</address>
24
      </author>
25
      <author>
26
	<firstname>Teddy</firstname>
27
	<surname>Hogeborn</surname>
28
	<address>
505.1.2 by Teddy Hogeborn
Change "fukt.bsnet.se" to "recompile.se" throughout.
29
	  <email>teddy@recompile.se</email>
24.1.23 by Björn Påhlsson
Added manual pages for:
30
	</address>
31
      </author>
32
    </authorgroup>
33
    <copyright>
34
      <year>2008</year>
246 by Teddy Hogeborn
* README: Update copyright year; add "2009".
35
      <year>2009</year>
778 by Teddy Hogeborn
Update copyright year.
36
      <year>2010</year>
37
      <year>2011</year>
544 by Teddy Hogeborn
Updated year in copyright notices.
38
      <year>2012</year>
778 by Teddy Hogeborn
Update copyright year.
39
      <year>2013</year>
40
      <year>2014</year>
41
      <year>2015</year>
807 by Teddy Hogeborn
Update copyright year.
42
      <year>2016</year>
899 by Teddy Hogeborn
Update copyright year to 2017
43
      <year>2017</year>
128 by Teddy Hogeborn
* plugin-runner.xml (/refentry/refentryinfo/copyright): Split
44
      <holder>Teddy Hogeborn</holder>
45
      <holder>Björn Påhlsson</holder>
24.1.23 by Björn Påhlsson
Added manual pages for:
46
    </copyright>
131 by Teddy Hogeborn
* Makefile: Make all DocBook rules include legalnotice.xml as a
47
    <xi:include href="legalnotice.xml"/>
24.1.23 by Björn Påhlsson
Added manual pages for:
48
  </refentryinfo>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
49
  
24.1.23 by Björn Påhlsson
Added manual pages for:
50
  <refmeta>
51
    <refentrytitle>&COMMANDNAME;</refentrytitle>
52
    <manvolnum>8mandos</manvolnum>
53
  </refmeta>
54
  
55
  <refnamediv>
56
    <refname><command>&COMMANDNAME;</command></refname>
57
    <refpurpose>
156 by Teddy Hogeborn
* mandos-clients.conf.xml (OPTIONS): Improved spelling.
58
      Run Mandos plugins, pass data from first to succeed.
24.1.23 by Björn Påhlsson
Added manual pages for:
59
    </refpurpose>
60
  </refnamediv>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
61
  
24.1.23 by Björn Påhlsson
Added manual pages for:
62
  <refsynopsisdiv>
63
    <cmdsynopsis>
64
      <command>&COMMANDNAME;</command>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
65
      <group rep="repeat">
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
66
	<arg choice="plain"><option>--global-env=<replaceable
187 by Teddy Hogeborn
* debian/mandos-client.README.Debian: Document "eth0" default and how
67
	>ENV</replaceable><literal>=</literal><replaceable
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
68
	>value</replaceable></option></arg>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
69
	<arg choice="plain"><option>-G
187 by Teddy Hogeborn
* debian/mandos-client.README.Debian: Document "eth0" default and how
70
	<replaceable>ENV</replaceable><literal>=</literal><replaceable
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
71
	>value</replaceable> </option></arg>
72
      </group>
73
      <sbr/>
74
      <group rep="repeat">
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
75
	<arg choice="plain"><option>--env-for=<replaceable
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
76
	>PLUGIN</replaceable><literal>:</literal><replaceable
77
	>ENV</replaceable><literal>=</literal><replaceable
78
	>value</replaceable></option></arg>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
79
	<arg choice="plain"><option>-E<replaceable>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
80
	PLUGIN</replaceable><literal>:</literal><replaceable
81
	>ENV</replaceable><literal>=</literal><replaceable
82
	>value</replaceable> </option></arg>
83
      </group>
84
      <sbr/>
85
      <group rep="repeat">
86
	<arg choice="plain"><option>--global-options=<replaceable
87
	>OPTIONS</replaceable></option></arg>
88
	<arg choice="plain"><option>-g<replaceable>
89
	OPTIONS</replaceable> </option></arg>
90
      </group>
91
      <sbr/>
92
      <group rep="repeat">
93
	<arg choice="plain"><option>--options-for=<replaceable
94
	>PLUGIN</replaceable><literal>:</literal><replaceable
95
	>OPTIONS</replaceable></option></arg>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
96
	<arg choice="plain"><option>-o<replaceable>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
97
	PLUGIN</replaceable><literal>:</literal><replaceable
98
	>OPTIONS</replaceable> </option></arg>
99
      </group>
100
      <sbr/>
101
      <group rep="repeat">
102
	<arg choice="plain"><option>--disable=<replaceable
103
	>PLUGIN</replaceable></option></arg>
104
	<arg choice="plain"><option>-d
105
	<replaceable>PLUGIN</replaceable> </option></arg>
106
      </group>
107
      <sbr/>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
108
      <group rep="repeat">
109
	<arg choice="plain"><option>--enable=<replaceable
110
	>PLUGIN</replaceable></option></arg>
111
	<arg choice="plain"><option>-e
112
	<replaceable>PLUGIN</replaceable> </option></arg>
113
      </group>
114
      <sbr/>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
115
      <arg><option>--groupid=<replaceable
116
      >ID</replaceable></option></arg>
117
      <sbr/>
118
      <arg><option>--userid=<replaceable
119
      >ID</replaceable></option></arg>
120
      <sbr/>
121
      <arg><option>--plugin-dir=<replaceable
122
      >DIRECTORY</replaceable></option></arg>
123
      <sbr/>
738.1.1 by Teddy Hogeborn
Add a plugin helper directory, available to all plugins.
124
      <arg><option>--plugin-helper-dir=<replaceable
125
      >DIRECTORY</replaceable></option></arg>
126
      <sbr/>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
127
      <arg><option>--config-file=<replaceable
128
      >FILE</replaceable></option></arg>
129
      <sbr/>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
130
      <arg><option>--debug</option></arg>
131
    </cmdsynopsis>
132
    <cmdsynopsis>
133
      <command>&COMMANDNAME;</command>
134
      <group choice="req">
129 by Teddy Hogeborn
* mandos-clients.conf.xml: Changed all single quotes to double quotes
135
	<arg choice="plain"><option>--help</option></arg>
136
	<arg choice="plain"><option>-?</option></arg>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
137
      </group>
138
    </cmdsynopsis>
139
    <cmdsynopsis>
140
      <command>&COMMANDNAME;</command>
129 by Teddy Hogeborn
* mandos-clients.conf.xml: Changed all single quotes to double quotes
141
      <arg choice="plain"><option>--usage</option></arg>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
142
    </cmdsynopsis>
143
    <cmdsynopsis>
144
      <command>&COMMANDNAME;</command>
145
      <group choice="req">
129 by Teddy Hogeborn
* mandos-clients.conf.xml: Changed all single quotes to double quotes
146
	<arg choice="plain"><option>--version</option></arg>
147
	<arg choice="plain"><option>-V</option></arg>
121 by Teddy Hogeborn
* plugin-runner.xml (NAME): Improved wording.
148
      </group>
118 by Teddy Hogeborn
* mandos-keygen.xml (SYNOPSIS): Fixed tags. Unify short and long
149
    </cmdsynopsis>
24.1.23 by Björn Påhlsson
Added manual pages for:
150
  </refsynopsisdiv>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
151
  
24.1.23 by Björn Påhlsson
Added manual pages for:
152
  <refsect1 id="description">
153
    <title>DESCRIPTION</title>
154
    <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
155
      <command>&COMMANDNAME;</command> is a program which is meant to
155 by Teddy Hogeborn
* README: Improved wording.
156
      be specified as a <quote>keyscript</quote> for the root disk in
157
      <citerefentry><refentrytitle>crypttab</refentrytitle>
158
      <manvolnum>5</manvolnum></citerefentry>.  The aim of this
159
      program is therefore to output a password, which then
160
      <citerefentry><refentrytitle>cryptsetup</refentrytitle>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
161
      <manvolnum>8</manvolnum></citerefentry> will use to unlock the
162
      root disk.
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
163
    </para>
164
    <para>
165
      This program is not meant to be invoked directly, but can be in
166
      order to test it.  Note that any password obtained will simply
167
      be output on standard output.
168
    </para>
169
  </refsect1>
170
  
171
  <refsect1 id="purpose">
172
    <title>PURPOSE</title>
173
    <para>
174
      The purpose of this is to enable <emphasis>remote and unattended
175
      rebooting</emphasis> of client host computer with an
176
      <emphasis>encrypted root file system</emphasis>.  See <xref
177
      linkend="overview"/> for details.
178
    </para>
179
  </refsect1>
180
  
24.1.38 by Björn Påhlsson
changed description to better fit role
181
  <refsect1>
182
    <title>OPTIONS</title>
24.1.23 by Björn Påhlsson
Added manual pages for:
183
    <variablelist>
184
      <varlistentry>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
185
	<term><option>--global-env
187 by Teddy Hogeborn
* debian/mandos-client.README.Debian: Document "eth0" default and how
186
	<replaceable>ENV</replaceable><literal>=</literal><replaceable
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
187
	>value</replaceable></option></term>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
188
	<term><option>-G
187 by Teddy Hogeborn
* debian/mandos-client.README.Debian: Document "eth0" default and how
189
	<replaceable>ENV</replaceable><literal>=</literal><replaceable
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
190
	>value</replaceable></option></term>
191
	<listitem>
192
	  <para>
136 by Teddy Hogeborn
* plugin-runner.c (add_environment): Override existing environment
193
	    This option will add an environment variable setting to
194
	    all plugins.  This will override any inherited environment
195
	    variable.
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
196
	  </para>
197
	</listitem>
198
      </varlistentry>
199
      
200
      <varlistentry>
201
	<term><option>--env-for
202
	<replaceable>PLUGIN</replaceable><literal>:</literal
203
	><replaceable>ENV</replaceable><literal>=</literal
204
	><replaceable>value</replaceable></option></term>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
205
	<term><option>-E
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
206
	<replaceable>PLUGIN</replaceable><literal>:</literal
207
	><replaceable>ENV</replaceable><literal>=</literal
208
	><replaceable>value</replaceable></option></term>
209
	<listitem>
210
	  <para>
136 by Teddy Hogeborn
* plugin-runner.c (add_environment): Override existing environment
211
	    This option will add an environment variable setting to
212
	    the <replaceable>PLUGIN</replaceable> plugin.  This will
213
	    override any inherited environment variables or
214
	    environment variables specified using
215
	    <option>--global-env</option>.
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
216
	  </para>
217
	</listitem>
218
      </varlistentry>
219
      
220
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
221
	<term><option>--global-options
222
	<replaceable>OPTIONS</replaceable></option></term>
223
	<term><option>-g
224
	<replaceable>OPTIONS</replaceable></option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
225
	<listitem>
226
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
227
	    Pass some options to <emphasis>all</emphasis> plugins.
228
	    <replaceable>OPTIONS</replaceable> is a comma separated
229
	    list of options.  This is not a very useful option, except
230
	    for specifying the <quote><option>--debug</option></quote>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
231
	    option to all plugins.
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
232
	  </para>
24.1.23 by Björn Påhlsson
Added manual pages for:
233
	</listitem>
234
      </varlistentry>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
235
      
24.1.23 by Björn Påhlsson
Added manual pages for:
236
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
237
	<term><option>--options-for
238
	<replaceable>PLUGIN</replaceable><literal>:</literal
239
	><replaceable>OPTION</replaceable></option></term>
240
	<term><option>-o
241
	<replaceable>PLUGIN</replaceable><literal>:</literal
242
	><replaceable>OPTION</replaceable></option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
243
	<listitem>
244
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
245
	    Pass some options to a specific plugin.  <replaceable
246
	    >PLUGIN</replaceable> is the name (file basename) of a
247
	    plugin, and <replaceable>OPTIONS</replaceable> is a comma
248
	    separated list of options.
249
	  </para>
250
	  <para>
251
	    Note that since options are not split on whitespace, the
252
	    way to pass, to the plugin
253
	    <quote><filename>foo</filename></quote>, the option
254
	    <option>--bar</option> with the option argument
255
	    <quote>baz</quote> is either
256
	    <userinput>--options-for=foo:--bar=baz</userinput> or
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
257
	    <userinput>--options-for=foo:--bar,baz</userinput>.  Using
258
	    <userinput>--options-for="foo:--bar baz"</userinput>. will
259
	    <emphasis>not</emphasis> work.
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
260
	  </para>
24.1.23 by Björn Påhlsson
Added manual pages for:
261
	</listitem>
118 by Teddy Hogeborn
* mandos-keygen.xml (SYNOPSIS): Fixed tags. Unify short and long
262
      </varlistentry>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
263
      
24.1.23 by Björn Påhlsson
Added manual pages for:
264
      <varlistentry>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
265
	<term><option>--disable
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
266
	<replaceable>PLUGIN</replaceable></option></term>
267
	<term><option>-d
268
	<replaceable>PLUGIN</replaceable></option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
269
	<listitem>
270
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
271
	    Disable the plugin named
272
	    <replaceable>PLUGIN</replaceable>.  The plugin will not be
273
	    started.
505.1.4 by Teddy Hogeborn
Removed superflous white space.
274
	  </para>
24.1.23 by Björn Påhlsson
Added manual pages for:
275
	</listitem>
276
      </varlistentry>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
277
      
24.1.23 by Björn Påhlsson
Added manual pages for:
278
      <varlistentry>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
279
	<term><option>--enable
280
	<replaceable>PLUGIN</replaceable></option></term>
281
	<term><option>-e
282
	<replaceable>PLUGIN</replaceable></option></term>
283
	<listitem>
284
	  <para>
285
	    Re-enable the plugin named
286
	    <replaceable>PLUGIN</replaceable>.  This is only useful to
287
	    undo a previous <option>--disable</option> option, maybe
156 by Teddy Hogeborn
* mandos-clients.conf.xml (OPTIONS): Improved spelling.
288
	    from the configuration file.
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
289
	  </para>
290
	</listitem>
291
      </varlistentry>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
292
      
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
293
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
294
	<term><option>--groupid
295
	<replaceable>ID</replaceable></option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
296
	<listitem>
297
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
298
	    Change to group ID <replaceable>ID</replaceable> on
299
	    startup.  The default is 65534.  All plugins will be
300
	    started using this group ID.  <emphasis>Note:</emphasis>
301
	    This must be a number, not a name.
24.1.23 by Björn Påhlsson
Added manual pages for:
302
	  </para>
303
	</listitem>
118 by Teddy Hogeborn
* mandos-keygen.xml (SYNOPSIS): Fixed tags. Unify short and long
304
      </varlistentry>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
305
      
24.1.23 by Björn Påhlsson
Added manual pages for:
306
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
307
	<term><option>--userid
308
	<replaceable>ID</replaceable></option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
309
	<listitem>
310
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
311
	    Change to user ID <replaceable>ID</replaceable> on
312
	    startup.  The default is 65534.  All plugins will be
313
	    started using this user ID.  <emphasis>Note:</emphasis>
314
	    This must be a number, not a name.
24.1.23 by Björn Påhlsson
Added manual pages for:
315
	  </para>
316
	</listitem>
118 by Teddy Hogeborn
* mandos-keygen.xml (SYNOPSIS): Fixed tags. Unify short and long
317
      </varlistentry>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
318
      
24.1.23 by Björn Påhlsson
Added manual pages for:
319
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
320
	<term><option>--plugin-dir
321
	<replaceable>DIRECTORY</replaceable></option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
322
	<listitem>
323
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
324
	    Specify a different plugin directory.  The default is
325
	    <filename>/lib/mandos/plugins.d</filename>, which will
326
	    exist in the initial <acronym>RAM</acronym> disk
327
	    environment.
24.1.23 by Björn Påhlsson
Added manual pages for:
328
	  </para>
329
	</listitem>
118 by Teddy Hogeborn
* mandos-keygen.xml (SYNOPSIS): Fixed tags. Unify short and long
330
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
331
      
332
      <varlistentry>
738.1.1 by Teddy Hogeborn
Add a plugin helper directory, available to all plugins.
333
	<term><option>--plugin-helper-dir
334
	<replaceable>DIRECTORY</replaceable></option></term>
335
	<listitem>
336
	  <para>
337
	    Specify a different plugin helper directory.  The default
338
	    is <filename>/lib/mandos/plugin-helpers</filename>, which
339
	    will exist in the initial <acronym>RAM</acronym> disk
340
	    environment.  (This will simply be passed to all plugins
341
	    via the <envar>MANDOSPLUGINHELPERDIR</envar> environment
342
	    variable.  See <xref linkend="writing_plugins"/>)
343
	  </para>
344
	</listitem>
345
      </varlistentry>
346
      
347
      <varlistentry>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
348
	<term><option>--config-file
349
	<replaceable>FILE</replaceable></option></term>
350
	<listitem>
351
	  <para>
352
	    Specify a different file to read additional options from.
353
	    See <xref linkend="files"/>.  Other command line options
354
	    will override options specified in the file.
355
	  </para>
356
	</listitem>
357
      </varlistentry>
358
      
359
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
360
	<term><option>--debug</option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
361
	<listitem>
362
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
363
	    Enable debug mode.  This will enable a lot of output to
364
	    standard error about what the program is doing.  The
365
	    program will still perform all other functions normally.
366
	    The default is to <emphasis>not</emphasis> run in debug
367
	    mode.
368
	  </para>
369
	  <para>
370
	    The plugins will <emphasis>not</emphasis> be affected by
371
	    this option.  Use
372
	    <userinput><option>--global-options=--debug</option></userinput>
373
	    if complete debugging eruption is desired.
24.1.23 by Björn Påhlsson
Added manual pages for:
374
	  </para>
375
	</listitem>
376
      </varlistentry>
377
      
378
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
379
	<term><option>--help</option></term>
380
	<term><option>-?</option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
381
	<listitem>
382
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
383
	    Gives a help message about options and their meanings.
24.1.23 by Björn Påhlsson
Added manual pages for:
384
	  </para>
385
	</listitem>
386
      </varlistentry>
387
      
388
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
389
	<term><option>--usage</option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
390
	<listitem>
391
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
392
	    Gives a short usage message.
24.1.23 by Björn Påhlsson
Added manual pages for:
393
	  </para>
394
	</listitem>
395
      </varlistentry>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
396
      
24.1.23 by Björn Påhlsson
Added manual pages for:
397
      <varlistentry>
125 by Teddy Hogeborn
* plugin-runner.xml (OPTIONS): Use <option> tags instead of
398
	<term><option>--version</option></term>
399
	<term><option>-V</option></term>
24.1.23 by Björn Påhlsson
Added manual pages for:
400
	<listitem>
401
	  <para>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
402
	    Prints the program version.
24.1.23 by Björn Påhlsson
Added manual pages for:
403
	  </para>
404
	</listitem>
118 by Teddy Hogeborn
* mandos-keygen.xml (SYNOPSIS): Fixed tags. Unify short and long
405
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
406
    </variablelist>
407
  </refsect1>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
408
  
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
409
  <refsect1 id="overview">
410
    <title>OVERVIEW</title>
411
    <xi:include href="overview.xml"/>
412
    <para>
413
      This program will run on the client side in the initial
414
      <acronym>RAM</acronym> disk environment, and is responsible for
415
      getting a password.  It does this by running plugins, one of
416
      which will normally be the actual client program communicating
417
      with the server.
418
    </para>
419
  </refsect1>
420
  <refsect1 id="plugins">
421
    <title>PLUGINS</title>
422
    <para>
423
      This program will get a password by running a number of
424
      <firstterm>plugins</firstterm>, which are simply executable
425
      programs in a directory in the initial <acronym>RAM</acronym>
426
      disk environment.  The default directory is
427
      <filename>/lib/mandos/plugins.d</filename>, but this can be
428
      changed with the <option>--plugin-dir</option> option.  The
429
      plugins are started in parallel, and the first plugin to output
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
430
      a password <emphasis>and</emphasis> exit with a successful exit
431
      code will make this plugin-runner output the password from that
432
      plugin, stop any other plugins, and exit.
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
433
    </para>
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
434
    
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
435
    <refsect2 id="writing_plugins">
436
      <title>WRITING PLUGINS</title>
437
      <para>
438
	A plugin is simply a program which prints a password to its
439
	standard output and then exits with a successful (zero) exit
440
	status.  If the exit status is not zero, any output on
441
	standard output will be ignored by the plugin runner.  Any
442
	output on its standard error channel will simply be passed to
443
	the standard error of the plugin runner, usually the system
444
	console.
445
      </para>
446
      <para>
168 by Teddy Hogeborn
* initramfs-tools-hook: Use long options where available. Use only
447
	If the password is a single-line, manually entered passprase,
448
	a final trailing newline character should
449
	<emphasis>not</emphasis> be printed.
450
      </para>
451
      <para>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
452
	The plugin will run in the initial RAM disk environment, so
453
	care must be taken not to depend on any files or running
738.1.1 by Teddy Hogeborn
Add a plugin helper directory, available to all plugins.
454
	services not available there.  Any helper executables required
455
	by the plugin (which are not in the <envar>PATH</envar>) can
456
	be placed in the plugin helper directory, the name of which
457
	will be made available to the plugin via the
458
	<envar>MANDOSPLUGINHELPERDIR</envar> environment variable.
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
459
      </para>
460
      <para>
461
	The plugin must exit cleanly and free all allocated resources
462
	upon getting the TERM signal, since this is what the plugin
463
	runner uses to stop all other plugins when one plugin has
464
	output a password and exited cleanly.
465
      </para>
466
      <para>
467
	The plugin must not use resources, like for instance reading
155 by Teddy Hogeborn
* README: Improved wording.
468
	from the standard input, without knowing that no other plugin
469
	is also using it.
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
470
      </para>
471
      <para>
472
	It is useful, but not required, for the plugin to take the
473
	<option>--debug</option> option.
474
      </para>
475
    </refsect2>
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
476
  </refsect1>
477
  
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
478
  <refsect1 id="fallback">
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
479
    <title>FALLBACK</title>
480
    <para>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
481
      If no plugins succeed, this program will, as a fallback, ask for
482
      a password on the console using <citerefentry><refentrytitle
483
      >getpass</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
484
      and output it.  This is not meant to be the normal mode of
485
      operation, as there is a separate plugin for getting a password
486
      from the console.
134 by Teddy Hogeborn
* mandos.xml: Enclose "RAM" with <acronym>.
487
    </para>
488
  </refsect1>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
489
  
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
490
  <refsect1 id="exit_status">
491
    <title>EXIT STATUS</title>
492
    <para>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
493
      Exit status of this program is zero if no errors were
494
      encountered, and otherwise not.  The fallback (see <xref
495
      linkend="fallback"/>) may or may not have succeeded in either
496
      case.
497
    </para>
498
  </refsect1>
499
  
500
  <refsect1 id="environment">
501
    <title>ENVIRONMENT</title>
502
    <para>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
503
      This program does not use any environment variables itself, it
504
      only passes on its environment to all the plugins.  The
505
      environment passed to plugins can be modified using the
506
      <option>--global-env</option> and <option>--env-for</option>
738.1.1 by Teddy Hogeborn
Add a plugin helper directory, available to all plugins.
507
      options.  Also, the <option>--plugin-helper-dir</option> option
508
      will affect the environment variable
509
      <envar>MANDOSPLUGINHELPERDIR</envar> for the plugins.
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
510
    </para>
511
  </refsect1>
512
  
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
513
  <refsect1 id="files">
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
514
    <title>FILES</title>
515
    <para>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
516
      <variablelist>
517
	<varlistentry>
518
	  <term><filename
519
	  >/conf/conf.d/mandos/plugin-runner.conf</filename></term>
520
	  <listitem>
521
	    <para>
522
	      Since this program will be run as a keyscript, there is
523
	      little to no opportunity to pass command line arguments
524
	      to it.  Therefore, it will <emphasis>also</emphasis>
525
	      read this file and use its contents as
526
	      whitespace-separated command line options.  Also,
527
	      everything from a <quote>#</quote> character to the end
528
	      of a line is ignored.
529
	    </para>
136 by Teddy Hogeborn
* plugin-runner.c (add_environment): Override existing environment
530
	    <para>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
531
	      This program is meant to run in the initial RAM disk
532
	      environment, so that is where this file is assumed to
533
	      exist.  The file does not need to exist in the normal
534
	      file system.
535
	    </para>
536
	    <para>
136 by Teddy Hogeborn
* plugin-runner.c (add_environment): Override existing environment
537
	      This file will be processed <emphasis>before</emphasis>
538
	      the normal command line options, so the latter can
539
	      override the former, if need be.
540
	    </para>
139 by Teddy Hogeborn
* plugin-runner.xml: Changed short option for "--global-env" to "-G",
541
	    <para>
542
	      This file name is the default; the file to read for
543
	      arguments can be changed using the
544
	      <option>--config-file</option> option.
545
	    </para>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
546
	  </listitem>
547
	</varlistentry>
835 by Teddy Hogeborn
Client: Document default directories more clearly
548
	<varlistentry>
549
	  <term><filename class="directory"
550
	  >/lib/mandos/plugins.d</filename></term>
551
	  <listitem>
552
	    <para>
553
	      The default plugin directory; can be changed by the
554
	      <option>--plugin-dir</option> option.
555
	    </para>
556
	  </listitem>
557
	</varlistentry>
558
	<varlistentry>
559
	  <term><filename class="directory"
560
	  >/lib/mandos/plugin-helpers</filename></term>
561
	  <listitem>
562
	    <para>
563
	      The default plugin helper directory; can be changed by
564
	      the <option>--plugin-helper-dir</option> option.
565
	    </para>
566
	  </listitem>
567
	</varlistentry>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
568
      </variablelist>
24.1.55 by Björn Påhlsson
updated some partial manual pages
569
    </para>
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
570
  </refsect1>
571
  
157 by Teddy Hogeborn
* plugin-runner.xml (BUGS): Document the non-recursiveness of the
572
  <refsect1 id="bugs">
573
    <title>BUGS</title>
574
    <para>
575
      The <option>--config-file</option> option is ignored when
576
      specified from within a configuration file.
577
    </para>
821 by Teddy Hogeborn
Add bug reporting information to manual pages
578
    <xi:include href="bugs.xml"/>
157 by Teddy Hogeborn
* plugin-runner.xml (BUGS): Document the non-recursiveness of the
579
  </refsect1>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
580
  
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
581
  <refsect1 id="examples">
113 by Teddy Hogeborn
* mandos-keygen.xml (EXAMPLE): Replaced all occurrences of command
582
    <title>EXAMPLE</title>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
583
    <informalexample>
584
      <para>
585
	Normal invocation needs no options:
586
      </para>
587
      <para>
588
	<userinput>&COMMANDNAME;</userinput>
589
      </para>
590
    </informalexample>
591
    <informalexample>
592
      <para>
593
	Run the program, but not the plugins, in debug mode:
594
      </para>
595
      <para>
596
	
597
	<!-- do not wrap this line -->
598
	<userinput>&COMMANDNAME; --debug</userinput>
599
	
600
      </para>
601
    </informalexample>
602
    <informalexample>
603
      <para>
604
	Run all plugins, but run the <quote>foo</quote> plugin in
605
	debug mode:
606
      </para>
607
      <para>
608
	
609
	<!-- do not wrap this line -->
610
	<userinput>&COMMANDNAME; --options-for=foo:--debug</userinput>
611
	
612
      </para>
613
    </informalexample>
614
    <informalexample>
615
      <para>
616
	Run all plugins, but not the program, in debug mode:
617
      </para>
618
      <para>
619
	
620
	<!-- do not wrap this line -->
621
	<userinput>&COMMANDNAME; --global-options=--debug</userinput>
622
	
623
      </para>
624
    </informalexample>
625
    <informalexample>
626
      <para>
758 by Teddy Hogeborn
plugin-runner.xml (EXAMPLE): Use the /usr/lib/<arch> directory.
627
	Read a different configuration file, run plugins from a
628
	different directory, specify an alternate plugin helper
629
	directory and add two options to the
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
630
	<citerefentry><refentrytitle >mandos-client</refentrytitle>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
631
	<manvolnum>8mandos</manvolnum></citerefentry> plugin:
632
      </para>
633
      <para>
634
635
<!-- do not wrap this line -->
758 by Teddy Hogeborn
plugin-runner.xml (EXAMPLE): Use the /usr/lib/<arch> directory.
636
<userinput>cd /etc/keys/mandos; &COMMANDNAME;  --config-file=/etc/mandos/plugin-runner.conf --plugin-dir /usr/lib/x86_64-linux-gnu/mandos/plugins.d --plugin-helper-dir /usr/lib/x86_64-linux-gnu/mandos/plugin-helpers --options-for=mandos-client:--pubkey=pubkey.txt,--seckey=seckey.txt</userinput>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
637
638
      </para>
639
    </informalexample>
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
640
  </refsect1>
641
  <refsect1 id="security">
642
    <title>SECURITY</title>
643
    <para>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
644
      This program will, when starting, try to switch to another user.
645
      If it is started as root, it will succeed, and will by default
646
      switch to user and group 65534, which are assumed to be
647
      non-privileged.  This user and group is then what all plugins
648
      will be started as.  Therefore, the only way to run a plugin as
649
      a privileged user is to have the set-user-ID or set-group-ID bit
164 by Teddy Hogeborn
* mandos: Open the PID file before daemonizing, but write to it
650
      set on the plugin executable file (see <citerefentry>
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
651
      <refentrytitle>execve</refentrytitle><manvolnum>2</manvolnum>
652
      </citerefentry>).
653
    </para>
654
    <para>
655
      If this program is used as a keyscript in <citerefentry
656
      ><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum>
156 by Teddy Hogeborn
* mandos-clients.conf.xml (OPTIONS): Improved spelling.
657
      </citerefentry>, there is a slight risk that if this program
658
      fails to work, there might be no way to boot the system except
659
      for booting from another media and editing the initial RAM disk
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
660
      image to not run this program.  This is, however, unlikely,
661
      since the <citerefentry><refentrytitle
662
      >password-prompt</refentrytitle><manvolnum>8mandos</manvolnum>
663
      </citerefentry> plugin will read a password from the console in
664
      case of failure of the other plugins, and this plugin runner
665
      will also, in case of catastrophic failure, itself fall back to
666
      asking and outputting a password on the console (see <xref
667
      linkend="fallback"/>).
24.1.55 by Björn Påhlsson
updated some partial manual pages
668
    </para>
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
669
  </refsect1>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
670
  
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
671
  <refsect1 id="see_also">
672
    <title>SEE ALSO</title>
673
    <para>
493 by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos".
674
      <citerefentry><refentrytitle>intro</refentrytitle>
675
      <manvolnum>8mandos</manvolnum></citerefentry>,
114 by Teddy Hogeborn
* mandos-clients.conf.xml (SEE ALSO): Alphabetized, as per
676
      <citerefentry><refentrytitle>cryptsetup</refentrytitle>
677
      <manvolnum>8</manvolnum></citerefentry>,
140 by Teddy Hogeborn
* plugin-runner.xml (PLUGINS/WRITING PLUGINS): New section.
678
      <citerefentry><refentrytitle>crypttab</refentrytitle>
679
      <manvolnum>5</manvolnum></citerefentry>,
680
      <citerefentry><refentrytitle>execve</refentrytitle>
681
      <manvolnum>2</manvolnum></citerefentry>,
24.1.41 by Björn Påhlsson
updated mandos-client sections and added see also stuff
682
      <citerefentry><refentrytitle>mandos</refentrytitle>
114 by Teddy Hogeborn
* mandos-clients.conf.xml (SEE ALSO): Alphabetized, as per
683
      <manvolnum>8</manvolnum></citerefentry>,
684
      <citerefentry><refentrytitle>password-prompt</refentrytitle>
113 by Teddy Hogeborn
* mandos-keygen.xml (EXAMPLE): Replaced all occurrences of command
685
      <manvolnum>8mandos</manvolnum></citerefentry>,
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
686
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
114 by Teddy Hogeborn
* mandos-clients.conf.xml (SEE ALSO): Alphabetized, as per
687
      <manvolnum>8mandos</manvolnum></citerefentry>
24.1.41 by Björn Påhlsson
updated mandos-client sections and added see also stuff
688
    </para>
24.1.39 by Björn Påhlsson
Added all sections needed for mandos-client manual page
689
  </refsect1>
135 by Teddy Hogeborn
* plugin-runner.c (add_environment): Never insert existing environment
690
  
24.1.23 by Björn Påhlsson
Added manual pages for:
691
</refentry>
111 by Teddy Hogeborn
* mandos-clients.conf.xml (ENTITY TIMESTAMP): New. Automatically
692
<!-- Local Variables: -->
693
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
694
<!-- time-stamp-end: "[\"']>" -->
695
<!-- time-stamp-format: "%:y-%02m-%02d" -->
696
<!-- End: -->