/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos-keygen.xml

  • Committer: Teddy Hogeborn
  • Date: 2008-08-02 10:48:24 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080802104824-fx0miwp9o4g9r31e
* plugbasedclient.c (struct process): New fields "eof", "completed",
                                      and "status".
  (handle_sigchld): New function.
  (main): Initialize "dir" to NULL to only closedir() it if necessary.
          Move "process_list" to be a global variable to be accessible
          by "handle_sigchld".  Make "handle_sigchld" handle SIGCHLD.
          Remove redundant check for NULL "dir".  Free "filename" when
          no longer used.  Block SIGCHLD around fork()/exec().
          Restore normal signals in child.  Only loop while running
          processes exist.  Print process buffer when the process is
          done and it has emitted EOF, not when it only emits EOF.
          Remove processes from list which exit non-cleanly.  In
          cleaning up, closedir() if necessary.  Bug fix: set next
          pointer correctly when freeing process list.

* plugins.d/passprompt.c (main): Do not ignore SIGQUIT.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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 VERSION "1.0">
5
 
<!ENTITY COMMANDNAME "mandos-keygen">
6
 
]>
7
 
 
8
 
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
9
 
  <refentryinfo>
10
 
    <title>&COMMANDNAME;</title>
11
 
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
12
 
    <productname>&COMMANDNAME;</productname>
13
 
    <productnumber>&VERSION;</productnumber>
14
 
    <authorgroup>
15
 
      <author>
16
 
        <firstname>Björn</firstname>
17
 
        <surname>Påhlsson</surname>
18
 
        <address>
19
 
          <email>belorn@fukt.bsnet.se</email>
20
 
        </address>
21
 
      </author>
22
 
      <author>
23
 
        <firstname>Teddy</firstname>
24
 
        <surname>Hogeborn</surname>
25
 
        <address>
26
 
          <email>teddy@fukt.bsnet.se</email>
27
 
        </address>
28
 
      </author>
29
 
    </authorgroup>
30
 
    <copyright>
31
 
      <year>2008</year>
32
 
      <holder>Teddy Hogeborn</holder>
33
 
      <holder>Björn Påhlsson</holder>
34
 
    </copyright>
35
 
    <legalnotice>
36
 
      <para>
37
 
        This manual page is free software: you can redistribute it
38
 
        and/or modify it under the terms of the GNU General Public
39
 
        License as published by the Free Software Foundation,
40
 
        either version 3 of the License, or (at your option) any
41
 
        later version.
42
 
      </para>
43
 
 
44
 
      <para>
45
 
        This manual page is distributed in the hope that it will
46
 
        be useful, but WITHOUT ANY WARRANTY; without even the
47
 
        implied warranty of MERCHANTABILITY or FITNESS FOR A
48
 
        PARTICULAR PURPOSE.  See the GNU General Public License
49
 
        for more details.
50
 
      </para>
51
 
 
52
 
      <para>
53
 
        You should have received a copy of the GNU General Public
54
 
        License along with this program; If not, see
55
 
        <ulink url="http://www.gnu.org/licenses/"/>.
56
 
      </para>
57
 
    </legalnotice>
58
 
  </refentryinfo>
59
 
 
60
 
  <refmeta>
61
 
    <refentrytitle>&COMMANDNAME;</refentrytitle>
62
 
    <manvolnum>8</manvolnum>
63
 
  </refmeta>
64
 
  
65
 
  <refnamediv>
66
 
    <refname><command>&COMMANDNAME;</command></refname>
67
 
    <refpurpose>
68
 
      Generate keys for <citerefentry><refentrytitle>password-request
69
 
      </refentrytitle><manvolnum>8mandos</manvolnum></citerefentry>
70
 
    </refpurpose>
71
 
  </refnamediv>
72
 
 
73
 
  <refsynopsisdiv>
74
 
    <cmdsynopsis>
75
 
      <command>&COMMANDNAME;</command>
76
 
      <group choice="opt">
77
 
        <arg choice="plain"><option>--dir</option>
78
 
        <replaceable>directory</replaceable></arg>
79
 
      </group>
80
 
      <group choice="opt">
81
 
        <arg choice="plain"><option>--type</option>
82
 
        <replaceable>type</replaceable></arg>
83
 
      </group>
84
 
      <group choice="opt">
85
 
        <arg choice="plain"><option>--length</option>
86
 
        <replaceable>bits</replaceable></arg>
87
 
      </group>
88
 
      <group choice="opt">
89
 
        <arg choice="plain"><option>--subtype</option>
90
 
        <replaceable>type</replaceable></arg>
91
 
      </group>
92
 
      <group choice="opt">
93
 
        <arg choice="plain"><option>--sublength</option>
94
 
        <replaceable>bits</replaceable></arg>
95
 
      </group>
96
 
      <group choice="opt">
97
 
        <arg choice="plain"><option>--name</option>
98
 
        <replaceable>NAME</replaceable></arg>
99
 
      </group>
100
 
      <group choice="opt">
101
 
        <arg choice="plain"><option>--email</option>
102
 
        <replaceable>EMAIL</replaceable></arg>
103
 
      </group>
104
 
      <group choice="opt">
105
 
        <arg choice="plain"><option>--comment</option>
106
 
        <replaceable>COMMENT</replaceable></arg>
107
 
      </group>
108
 
      <group choice="opt">
109
 
        <arg choice="plain"><option>--expire</option>
110
 
        <replaceable>TIME</replaceable></arg>
111
 
      </group>
112
 
      <group choice="opt">
113
 
        <arg choice="plain"><option>--force</option></arg>
114
 
      </group>
115
 
    </cmdsynopsis>
116
 
    <cmdsynopsis>
117
 
      <command>&COMMANDNAME;</command>
118
 
      <group choice="opt">
119
 
        <arg choice="plain"><option>-d</option>
120
 
        <replaceable>directory</replaceable></arg>
121
 
      </group>
122
 
      <group choice="opt">
123
 
        <arg choice="plain"><option>-t</option>
124
 
        <replaceable>type</replaceable></arg>
125
 
      </group>
126
 
      <group choice="opt">
127
 
        <arg choice="plain"><option>-l</option>
128
 
        <replaceable>bits</replaceable></arg>
129
 
      </group>
130
 
      <group choice="opt">
131
 
        <arg choice="plain"><option>-s</option>
132
 
        <replaceable>type</replaceable></arg>
133
 
      </group>
134
 
      <group choice="opt">
135
 
        <arg choice="plain"><option>-L</option>
136
 
        <replaceable>bits</replaceable></arg>
137
 
      </group>
138
 
      <group choice="opt">
139
 
        <arg choice="plain"><option>-n</option>
140
 
        <replaceable>NAME</replaceable></arg>
141
 
      </group>
142
 
      <group choice="opt">
143
 
        <arg choice="plain"><option>-e</option>
144
 
        <replaceable>EMAIL</replaceable></arg>
145
 
      </group>
146
 
      <group choice="opt">
147
 
        <arg choice="plain"><option>-c</option>
148
 
        <replaceable>COMMENT</replaceable></arg>
149
 
      </group>
150
 
      <group choice="opt">
151
 
        <arg choice="plain"><option>-x</option>
152
 
        <replaceable>TIME</replaceable></arg>
153
 
      </group>
154
 
      <group choice="opt">
155
 
        <arg choice="plain"><option>-f</option></arg>
156
 
      </group>
157
 
    </cmdsynopsis>
158
 
    <cmdsynopsis>
159
 
      <command>&COMMANDNAME;</command>
160
 
      <group choice="req">
161
 
        <arg choice="plain"><option>-p</option></arg>
162
 
        <arg choice="plain"><option>--password</option></arg>
163
 
      </group>
164
 
      <group choice="opt">
165
 
        <arg choice="plain"><option>--dir</option>
166
 
        <replaceable>directory</replaceable></arg>
167
 
      </group>
168
 
      <group choice="opt">
169
 
        <arg choice="plain"><option>--name</option>
170
 
        <replaceable>NAME</replaceable></arg>
171
 
      </group>
172
 
    </cmdsynopsis>
173
 
    <cmdsynopsis>
174
 
      <command>&COMMANDNAME;</command>
175
 
      <group choice="req">
176
 
        <arg choice="plain"><option>-h</option></arg>
177
 
        <arg choice="plain"><option>--help</option></arg>
178
 
      </group>
179
 
    </cmdsynopsis>
180
 
    <cmdsynopsis>
181
 
      <command>&COMMANDNAME;</command>
182
 
      <group choice="req">
183
 
        <arg choice="plain"><option>-v</option></arg>
184
 
        <arg choice="plain"><option>--version</option></arg>
185
 
      </group>
186
 
    </cmdsynopsis>
187
 
  </refsynopsisdiv>
188
 
 
189
 
  <refsect1 id="description">
190
 
    <title>DESCRIPTION</title>
191
 
    <para>
192
 
      <command>&COMMANDNAME;</command> is a program to generate the
193
 
      OpenPGP keys used by
194
 
      <citerefentry><refentrytitle>password-request</refentrytitle>
195
 
      <manvolnum>8mandos</manvolnum></citerefentry>.  The keys are
196
 
      normally written to /etc/mandos for later installation into the
197
 
      initrd image, but this, like most things, can be changed with
198
 
      command line options.
199
 
    </para>
200
 
    <para>
201
 
      It can also be used to generate ready-made sections for
202
 
      <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
203
 
      <manvolnum>5</manvolnum></citerefentry> using the
204
 
      <option>--password</option> option.
205
 
    </para>
206
 
  </refsect1>
207
 
  
208
 
  <refsect1 id="purpose">
209
 
    <title>PURPOSE</title>
210
 
 
211
 
    <para>
212
 
      The purpose of this is to enable <emphasis>remote and unattended
213
 
      rebooting</emphasis> of client host computer with an
214
 
      <emphasis>encrypted root file system</emphasis>.  See <xref
215
 
      linkend="overview"/> for details.
216
 
    </para>
217
 
 
218
 
  </refsect1>
219
 
  
220
 
  <refsect1 id="options">
221
 
    <title>OPTIONS</title>
222
 
 
223
 
    <variablelist>
224
 
      <varlistentry>
225
 
        <term><literal>-h</literal>, <literal>--help</literal></term>
226
 
        <listitem>
227
 
          <para>
228
 
            Show a help message and exit
229
 
          </para>
230
 
        </listitem>
231
 
      </varlistentry>
232
 
 
233
 
      <varlistentry>
234
 
        <term><literal>-d</literal>, <literal>--dir
235
 
        <replaceable>directory</replaceable></literal></term>
236
 
        <listitem>
237
 
          <para>
238
 
            Target directory for key files.  Default is
239
 
            <filename>/etc/mandos</filename>.
240
 
          </para>
241
 
        </listitem>
242
 
      </varlistentry>
243
 
 
244
 
      <varlistentry>
245
 
        <term><literal>-t</literal>, <literal>--type
246
 
        <replaceable>type</replaceable></literal></term>
247
 
        <listitem>
248
 
          <para>
249
 
            Key type.  Default is <quote>DSA</quote>.
250
 
          </para>
251
 
        </listitem>
252
 
      </varlistentry>
253
 
 
254
 
      <varlistentry>
255
 
        <term><literal>-l</literal>, <literal>--length
256
 
        <replaceable>bits</replaceable></literal></term>
257
 
        <listitem>
258
 
          <para>
259
 
            Key length in bits.  Default is 1024.
260
 
          </para>
261
 
        </listitem>
262
 
      </varlistentry>
263
 
 
264
 
      <varlistentry>
265
 
        <term><literal>-s</literal>, <literal>--subtype
266
 
        <replaceable>type</replaceable></literal></term>
267
 
        <listitem>
268
 
          <para>
269
 
            Subkey type.  Default is <quote>ELG-E</quote> (Elgamal
270
 
            encryption-only).
271
 
          </para>
272
 
        </listitem>
273
 
      </varlistentry>
274
 
 
275
 
      <varlistentry>
276
 
        <term><literal>-L</literal>, <literal>--sublength
277
 
        <replaceable>bits</replaceable></literal></term>
278
 
        <listitem>
279
 
          <para>
280
 
            Subkey length in bits.  Default is 2048.
281
 
          </para>
282
 
        </listitem>
283
 
      </varlistentry>
284
 
 
285
 
      <varlistentry>
286
 
        <term><literal>-e</literal>, <literal>--email</literal>
287
 
        <replaceable>address</replaceable></term>
288
 
        <listitem>
289
 
          <para>
290
 
            Email address of key.  Default is empty.
291
 
          </para>
292
 
        </listitem>
293
 
      </varlistentry>
294
 
 
295
 
      <varlistentry>
296
 
        <term><literal>-c</literal>, <literal>--comment</literal>
297
 
        <replaceable>comment</replaceable></term>
298
 
        <listitem>
299
 
          <para>
300
 
            Comment field for key.  The default value is
301
 
            <quote><literal>Mandos client key</literal></quote>.
302
 
          </para>
303
 
        </listitem>
304
 
      </varlistentry>
305
 
 
306
 
      <varlistentry>
307
 
        <term><literal>-x</literal>, <literal>--expire</literal>
308
 
        <replaceable>time</replaceable></term>
309
 
        <listitem>
310
 
          <para>
311
 
            Key expire time.  Default is no expiration.  See
312
 
            <citerefentry><refentrytitle>gpg</refentrytitle>
313
 
            <manvolnum>1</manvolnum></citerefentry> for syntax.
314
 
          </para>
315
 
        </listitem>
316
 
      </varlistentry>
317
 
 
318
 
      <varlistentry>
319
 
        <term><literal>-f</literal>, <literal>--force</literal></term>
320
 
        <listitem>
321
 
          <para>
322
 
            Force overwriting old keys.
323
 
          </para>
324
 
        </listitem>
325
 
      </varlistentry>
326
 
      <varlistentry>
327
 
        <term><literal>-p</literal>, <literal>--password</literal
328
 
        ></term>
329
 
        <listitem>
330
 
          <para>
331
 
            Prompt for a password and encrypt it with the key already
332
 
            present in either <filename>/etc/mandos</filename> or the
333
 
            directory specified with the <option>--dir</option>
334
 
            option.  Outputs, on standard output, a section suitable
335
 
            for inclusion in <citerefentry><refentrytitle
336
 
            >mandos-clients.conf</refentrytitle><manvolnum
337
 
            >8</manvolnum></citerefentry>.  The host name or the name
338
 
            specified with the <option>--name</option> option is used
339
 
            for the section header.  All other options are ignored,
340
 
            and no keys are created.
341
 
          </para>
342
 
        </listitem>
343
 
      </varlistentry>
344
 
    </variablelist>
345
 
  </refsect1>
346
 
 
347
 
  <refsect1 id="overview">
348
 
    <title>OVERVIEW</title>
349
 
    <xi:include href="overview.xml"/>
350
 
    <para>
351
 
      This program is a small utility to generate new OpenPGP keys for
352
 
      new Mandos clients.
353
 
    </para>
354
 
  </refsect1>
355
 
 
356
 
  <refsect1 id="exit_status">
357
 
    <title>EXIT STATUS</title>
358
 
    <para>
359
 
      The exit status will be 0 if new keys were successfully created,
360
 
      otherwise not.
361
 
    </para>
362
 
  </refsect1>
363
 
  
364
 
  <refsect1 id="environment">
365
 
    <title>ENVIRONMENT</title>
366
 
    <variablelist>
367
 
      <varlistentry>
368
 
        <term><varname>TMPDIR</varname></term>
369
 
        <listitem>
370
 
          <para>
371
 
            If set, temporary files will be created here. See
372
 
            <citerefentry><refentrytitle>mktemp</refentrytitle>
373
 
            <manvolnum>1</manvolnum></citerefentry>.
374
 
          </para>
375
 
        </listitem>
376
 
      </varlistentry>
377
 
    </variablelist>
378
 
  </refsect1>
379
 
  
380
 
  <refsect1 id="file">
381
 
    <title>FILES</title>
382
 
    <para>
383
 
      Use the <option>--dir</option> option to change where
384
 
      <command>&COMMANDNAME;</command> will write the key files.  The
385
 
      default file names are shown here.
386
 
    </para>
387
 
    <variablelist>
388
 
      <varlistentry>
389
 
        <term><filename>/etc/mandos/seckey.txt</filename></term>
390
 
        <listitem>
391
 
          <para>
392
 
            OpenPGP secret key file which will be created or
393
 
            overwritten.
394
 
          </para>
395
 
        </listitem>
396
 
      </varlistentry>
397
 
      <varlistentry>
398
 
        <term><filename>/etc/mandos/pubkey.txt</filename></term>
399
 
        <listitem>
400
 
          <para>
401
 
            OpenPGP public key file which will be created or
402
 
            overwritten.
403
 
          </para>
404
 
        </listitem>
405
 
      </varlistentry>
406
 
      <varlistentry>
407
 
        <term><filename>/tmp</filename></term>
408
 
        <listitem>
409
 
          <para>
410
 
            Temporary files will be written here if
411
 
            <varname>TMPDIR</varname> is not set.
412
 
          </para>
413
 
        </listitem>
414
 
      </varlistentry>
415
 
    </variablelist>
416
 
  </refsect1>
417
 
 
418
 
  <refsect1 id="bugs">
419
 
    <title>BUGS</title>
420
 
    <para>
421
 
      None are known at this time.
422
 
    </para>
423
 
  </refsect1>
424
 
 
425
 
  <refsect1 id="example">
426
 
    <title>EXAMPLE</title>
427
 
    <informalexample>
428
 
      <para>
429
 
        Normal invocation needs no options:
430
 
      </para>
431
 
      <para>
432
 
        <userinput>mandos-keygen</userinput>
433
 
      </para>
434
 
    </informalexample>
435
 
    <informalexample>
436
 
      <para>
437
 
        Create keys in another directory and of another type.  Force
438
 
        overwriting old key files:
439
 
      </para>
440
 
      <para>
441
 
 
442
 
<!-- do not wrap this line -->
443
 
<userinput>mandos-keygen --dir ~/keydir --type RSA --force</userinput>
444
 
 
445
 
      </para>
446
 
    </informalexample>
447
 
  </refsect1>
448
 
 
449
 
  <refsect1 id="security">
450
 
    <title>SECURITY</title>
451
 
    <para>
452
 
      The <option>--type</option>, <option>--length</option>,
453
 
      <option>--subtype</option>, and <option>--sublength</option>
454
 
      options can be used to create keys of insufficient security.  If
455
 
      in doubt, leave them to the default values.
456
 
    </para>
457
 
    <para>
458
 
      The key expire time is not guaranteed to be honored by
459
 
      <citerefentry><refentrytitle>mandos</refentrytitle>
460
 
      <manvolnum>8</manvolnum></citerefentry>.
461
 
    </para>
462
 
  </refsect1>
463
 
 
464
 
  <refsect1 id="see_also">
465
 
    <title>SEE ALSO</title>
466
 
    <para>
467
 
      <citerefentry><refentrytitle>password-request</refentrytitle>
468
 
      <manvolnum>8mandos</manvolnum></citerefentry>,
469
 
      <citerefentry><refentrytitle>mandos</refentrytitle>
470
 
      <manvolnum>8</manvolnum></citerefentry>,
471
 
      <citerefentry><refentrytitle>gpg</refentrytitle>
472
 
      <manvolnum>1</manvolnum></citerefentry>
473
 
    </para>
474
 
  </refsect1>
475
 
  
476
 
</refentry>