/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
	"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
<!ENTITY COMMANDNAME "plymouth">
1127 by Teddy Hogeborn
Add dracut(8) support
5
<!ENTITY TIMESTAMP "2019-07-27">
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
6
<!ENTITY % common SYSTEM "../common.ent">
7
%common;
8
]>
9
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
11
  <refentryinfo>
12
    <title>Mandos Manual</title>
13
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
14
    <productname>Mandos</productname>
15
    <productnumber>&version;</productnumber>
16
    <date>&TIMESTAMP;</date>
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>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
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>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
30
	</address>
31
      </author>
32
    </authorgroup>
33
    <copyright>
444 by Teddy Hogeborn
Update copyright year to "2010" wherever appropriate.
34
      <year>2010</year>
466 by Teddy Hogeborn
Update copyright year to "2011" wherever appropriate.
35
      <year>2011</year>
544 by Teddy Hogeborn
Updated year in copyright notices.
36
      <year>2012</year>
778 by Teddy Hogeborn
Update copyright year.
37
      <year>2013</year>
38
      <year>2014</year>
39
      <year>2015</year>
807 by Teddy Hogeborn
Update copyright year.
40
      <year>2016</year>
899 by Teddy Hogeborn
Update copyright year to 2017
41
      <year>2017</year>
923 by Teddy Hogeborn
Update copyright year to 2018
42
      <year>2018</year>
969 by Teddy Hogeborn
Update copyright year to 2019
43
      <year>2019</year>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
44
      <holder>Teddy Hogeborn</holder>
45
      <holder>Björn Påhlsson</holder>
46
    </copyright>
47
    <xi:include href="../legalnotice.xml"/>
48
  </refentryinfo>
49
  
50
  <refmeta>
51
    <refentrytitle>&COMMANDNAME;</refentrytitle>
52
    <manvolnum>8mandos</manvolnum>
53
  </refmeta>
54
  
55
  <refnamediv>
56
    <refname><command>&COMMANDNAME;</command></refname>
57
    <refpurpose>Mandos plugin to use plymouth to get a
58
    password.</refpurpose>
59
  </refnamediv>
60
  
61
  <refsynopsisdiv>
62
    <cmdsynopsis>
63
      <command>&COMMANDNAME;</command>
1127 by Teddy Hogeborn
Add dracut(8) support
64
      <arg choice="opt">
65
	<option>--prompt <replaceable>PROMPT</replaceable></option>
66
      </arg>
67
      <arg><option>--debug</option></arg>
68
    </cmdsynopsis>
69
    <cmdsynopsis>
70
      <command>&COMMANDNAME;</command>
71
      <group choice="req">
72
	<arg choice="plain"><option>--help</option></arg>
73
	<arg choice="plain"><option>-?</option></arg>
74
      </group>
75
    </cmdsynopsis>
76
    <cmdsynopsis>
77
      <command>&COMMANDNAME;</command>
78
      <arg choice="plain"><option>--usage</option></arg>
79
    </cmdsynopsis>
80
    <cmdsynopsis>
81
      <command>&COMMANDNAME;</command>
82
      <group choice="req">
83
	<arg choice="plain"><option>--version</option></arg>
84
	<arg choice="plain"><option>-V</option></arg>
85
      </group>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
86
    </cmdsynopsis>
87
  </refsynopsisdiv>
88
  
89
  <refsect1 id="description">
90
    <title>DESCRIPTION</title>
91
    <para>
92
      This program prompts for a password using <citerefentry>
93
      <refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum>
94
      </citerefentry> and outputs any given password to standard
95
      output.  If no <citerefentry><refentrytitle
96
      >plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>
97
      process can be found, this program will immediately exit with an
98
      exit code indicating failure.
99
    </para>
100
    <para>
101
      This program is not very useful on its own.  This program is
102
      really meant to run as a plugin in the <application
103
      >Mandos</application> client-side system, where it is used as a
104
      fallback and alternative to retrieving passwords from a
105
      <application >Mandos</application> server.
106
    </para>
107
    <para>
108
      If this program is killed (presumably by
109
      <citerefentry><refentrytitle>plugin-runner</refentrytitle>
110
      <manvolnum>8mandos</manvolnum></citerefentry> because some other
111
      plugin provided the password), it cannot tell <citerefentry>
112
      <refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum>
113
      </citerefentry> to abort requesting a password, because
114
      <citerefentry><refentrytitle>plymouth</refentrytitle>
115
      <manvolnum>8</manvolnum></citerefentry> does not support this.
116
      Therefore, this program will then <emphasis>kill</emphasis> the
117
      running <citerefentry><refentrytitle>plymouth</refentrytitle>
118
      <manvolnum>8</manvolnum></citerefentry> process and start a
119
      <emphasis>new</emphasis> one using the same command line
120
      arguments as the old one was using.
121
    </para>
122
  </refsect1>
123
  
124
  <refsect1 id="options">
125
    <title>OPTIONS</title>
126
    <para>
1127 by Teddy Hogeborn
Add dracut(8) support
127
      This program is commonly not invoked from the command line; it
128
      is normally started by the <application>Mandos</application>
129
      plugin runner, see <citerefentry><refentrytitle
130
      >plugin-runner</refentrytitle><manvolnum>8mandos</manvolnum>
131
      </citerefentry>.  Any command line options this program accepts
132
      are therefore normally provided by the plugin runner, and not
133
      directly.
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
134
    </para>
1127 by Teddy Hogeborn
Add dracut(8) support
135
    
136
    <variablelist>
137
      <varlistentry>
138
	<term><option>--prompt=<replaceable
139
	>PROMPT</replaceable></option></term>
140
	<listitem>
141
	  <para>
142
	    The password prompt.  Note that using this option will
143
	    make this program ignore the <envar>cryptsource</envar>
144
	    and <envar>crypttarget</envar> environment variables.
145
	  </para>
146
	</listitem>
147
      </varlistentry>
148
      
149
      <varlistentry>
150
	<term><option>--debug</option></term>
151
	<listitem>
152
	  <para>
153
	    Enable debug mode.  This will enable a lot of output to
154
	    standard error about what the program is doing.  The
155
	    program will still perform all other functions normally.
156
	  </para>
157
	</listitem>
158
      </varlistentry>
159
      
160
      <varlistentry>
161
	<term><option>--help</option></term>
162
	<term><option>-?</option></term>
163
	<listitem>
164
	  <para>
165
	    Gives a help message about options and their meanings.
166
	  </para>
167
	</listitem>
168
      </varlistentry>
169
      
170
      <varlistentry>
171
	<term><option>--usage</option></term>
172
	<listitem>
173
	  <para>
174
	    Gives a short usage message.
175
	  </para>
176
	</listitem>
177
      </varlistentry>
178
      
179
      <varlistentry>
180
	<term><option>--version</option></term>
181
	<term><option>-V</option></term>
182
	<listitem>
183
	  <para>
184
	    Prints the program version.
185
	  </para>
186
	</listitem>
187
      </varlistentry>
188
    </variablelist>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
189
  </refsect1>
190
  
191
  <refsect1 id="exit_status">
192
    <title>EXIT STATUS</title>
193
    <para>
194
      If exit status is 0, the output from the program is the password
195
      as it was read.  Otherwise, if exit status is other than 0, the
196
      program was interrupted or encountered an error, and any output
197
      so far could be corrupt and/or truncated, and should therefore
198
      be ignored.
199
    </para>
200
  </refsect1>
201
  
202
  <refsect1 id="environment">
203
    <title>ENVIRONMENT</title>
204
    <variablelist>
205
      <varlistentry>
206
	<term><envar>cryptsource</envar></term>
207
	<term><envar>crypttarget</envar></term>
208
	<listitem>
209
	  <para>
1127 by Teddy Hogeborn
Add dracut(8) support
210
	    If set, and if the <option>--prompt</option> option is not
211
	    used, these environment variables will be assumed to
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
212
	    contain the source device name and the target device
213
	    mapper name, respectively, and will be shown as part of
214
	    the prompt.
215
	</para>
216
	<para>
217
	  These variables will normally be inherited from
218
	  <citerefentry><refentrytitle>plugin-runner</refentrytitle>
1127 by Teddy Hogeborn
Add dracut(8) support
219
	  <manvolnum>8mandos</manvolnum></citerefentry>, which might
220
	  have in turn inherited them from its calling process.
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
221
	</para>
222
	<para>
223
	  This behavior is meant to exactly mirror the behavior of
1127 by Teddy Hogeborn
Add dracut(8) support
224
	  <command>askpass</command>, the default password prompter
225
	  from initramfs-tools.
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
226
	</para>
227
	</listitem>
228
      </varlistentry>
229
    </variablelist>
230
  </refsect1>
231
  
232
  <refsect1 id="files">
233
    <title>FILES</title>
234
    <variablelist>
235
      <varlistentry>
236
	<term><filename>/bin/plymouth</filename></term>
237
	<listitem>
238
	  <para>
239
	    This is the command run to retrieve a password from
240
	    <citerefentry><refentrytitle>plymouth</refentrytitle>
241
	    <manvolnum>8</manvolnum></citerefentry>.
242
	  </para>
243
	</listitem>
244
      </varlistentry>
245
      <varlistentry>
521.1.1 by teddy at bsnet
* plugins.d/mandos-client.c (SYNOPSIS, OPTIONS): Document
246
	<term><filename class="directory">/proc</filename></term>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
247
	<listitem>
248
	  <para>
249
	    To find the running <citerefentry><refentrytitle
250
	    >plymouth</refentrytitle><manvolnum>8</manvolnum>
251
	    </citerefentry>, this directory will be searched for
252
	    numeric entries which will be assumed to be directories.
253
	    In all those directories, the <filename>exe</filename> and
254
	    <filename>cmdline</filename> entries will be used to
255
	    determine the name of the running binary, effective user
256
	    and group <abbrev>ID</abbrev>, and the command line
257
	    arguments.  See <citerefentry><refentrytitle
258
	    >proc</refentrytitle><manvolnum>5</manvolnum>
259
	    </citerefentry>.
260
	  </para>
261
	</listitem>
262
      </varlistentry>
263
      <varlistentry>
264
	<term><filename>/sbin/plymouthd</filename></term>
265
	<listitem>
266
	  <para>
267
	    This is the name of the binary which will be searched for
268
	    in the process list.  See <citerefentry><refentrytitle
269
	    >plymouth</refentrytitle><manvolnum>8</manvolnum>
270
	    </citerefentry>.
271
	  </para>
272
	</listitem>
273
      </varlistentry>
274
    </variablelist>
275
  </refsect1>
276
  
277
  <refsect1 id="bugs">
278
    <title>BUGS</title>
279
    <para>
280
      Killing the <citerefentry><refentrytitle
281
      >plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>
282
      daemon and starting a new one is ugly, but necessary as long as
283
      it does not support aborting a password request.
284
    </para>
821 by Teddy Hogeborn
Add bug reporting information to manual pages
285
    <xi:include href="../bugs.xml"/>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
286
  </refsect1>
287
  
288
  <refsect1 id="example">
289
    <title>EXAMPLE</title>
290
    <para>
291
      Note that normally, this program will not be invoked directly,
292
      but instead started by the Mandos <citerefentry><refentrytitle
293
      >plugin-runner</refentrytitle><manvolnum>8mandos</manvolnum>
294
      </citerefentry>.
295
    </para>
296
    <informalexample>
297
      <para>
1127 by Teddy Hogeborn
Add dracut(8) support
298
	Normal invocation needs no options:
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
299
      </para>
300
      <para>
301
	<userinput>&COMMANDNAME;</userinput>
302
      </para>
303
    </informalexample>
1127 by Teddy Hogeborn
Add dracut(8) support
304
    <informalexample>
305
      <para>
306
	Show a different prompt.
307
      </para>
308
      <para>
309
	<userinput>&COMMANDNAME; --prompt=Password</userinput>
310
      </para>
311
    </informalexample>
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
312
  </refsect1>
313
  
314
  <refsect1 id="security">
315
    <title>SECURITY</title>
316
    <para>
317
      If this program is killed by a signal, it will kill the process
318
      <abbrev>ID</abbrev> which at the start of this program was
319
      determined to run <citerefentry><refentrytitle
320
      >plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>
321
      as root (see also <xref linkend="files"/>).  There is a very
322
      slight risk that, in the time between those events, that process
323
      <abbrev>ID</abbrev> was freed and then taken up by another
324
      process; the wrong process would then be killed.  Now, this
325
      program can only be killed by the user who started it; see
326
      <citerefentry><refentrytitle>plugin-runner</refentrytitle>
327
      <manvolnum>8mandos</manvolnum></citerefentry>.  This program
328
      should therefore be started by a completely separate
329
      non-privileged user, and no other programs should be allowed to
330
      run as that special user.  This means that it is not recommended
331
      to use the user "nobody" to start this program, as other
332
      possibly less trusted programs could be running as "nobody", and
333
      they would then be able to kill this program, triggering the
334
      killing of the process <abbrev>ID</abbrev> which may or may not
335
      be <citerefentry><refentrytitle>plymouth</refentrytitle>
336
      <manvolnum>8</manvolnum></citerefentry>.
337
    </para>
338
    <para>
339
      The only other thing that could be considered worthy of note is
340
      this:  This program is meant to be run by <citerefentry>
341
      <refentrytitle>plugin-runner</refentrytitle><manvolnum
342
      >8mandos</manvolnum></citerefentry>, and will, when run
343
      standalone, outside, in a normal environment, immediately output
344
      on its standard output any presumably secret password it just
345
      received.  Therefore, when running this program standalone
346
      (which should never normally be done), take care not to type in
347
      any real secret password by force of habit, since it would then
348
      immediately be shown as output.
349
    </para>
350
  </refsect1>
351
  
352
  <refsect1 id="see_also">
353
    <title>SEE ALSO</title>
354
    <para>
493 by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos".
355
      <citerefentry><refentrytitle>intro</refentrytitle>
356
      <manvolnum>8mandos</manvolnum></citerefentry>,
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
357
      <citerefentry><refentrytitle>plugin-runner</refentrytitle>
358
      <manvolnum>8mandos</manvolnum></citerefentry>,
359
      <citerefentry><refentrytitle>proc</refentrytitle>
360
      <manvolnum>5</manvolnum></citerefentry>,
361
      <citerefentry><refentrytitle>plymouth</refentrytitle>
362
      <manvolnum>8</manvolnum></citerefentry>
363
    </para>
364
  </refsect1>
365
</refentry>
366
<!-- Local Variables: -->
367
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
368
<!-- time-stamp-end: "[\"']>" -->
369
<!-- time-stamp-format: "%:y-%02m-%02d" -->
370
<!-- End: -->