/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 plugin-runner.xml

  • Committer: Teddy Hogeborn
  • Date: 2015-06-28 16:35:27 UTC
  • mto: This revision was merged to the branch mainline in revision 759.
  • Revision ID: teddy@recompile.se-20150628163527-cky0ec59zew7teua
Add a plugin helper directory, available to all plugins.

* Makefile (PLUGIN_HELPERS): New; list of plugin helpers.
  (CPROGS): Appended "$(PLUGIN_HELPERS)".
* initramfs-tools-hook: Create new plugin helper directory, and copy
                        plugin helpers provided by the system and/or
                        by the local administrator.
  (PLUGINHELPERDIR): New.
* plugin-runner.c: Take new --plugin-helper-dir option and provide
                   environment variable to all plugins.
  (PHDIR): New; set to "/lib/mandos/plugin-helpers".
  (main/pluginhelperdir): New.
  (main/options): New option "--plugin-helper-dir".
  (main/parse_opt, main/parse_opt_config_file): Accept new option.
  (main): Use new option to set MANDOSPLUGINHELPERDIR environment
          variable as if using --global-env MANDOSPLUGINHELPERDIR=...
* plugin-runner.xml: Document new --plugin-helper-dir option.
  (SYNOPSIS, OPTIONS): Add "--plugin-helper-dir" option.
  (PLUGINS/WRITING PLUGINS): Document new environment variable
                             available to plugins.
  (ENVIRONMENT): Document new environment variable
                 "MANDOSPLUGINHELPERDIR" affected by the new
                 --plugin-helper-dir option.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?xml version="1.0" encoding="UTF-8"?>
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
 
<!ENTITY VERSION "1.0">
5
4
<!ENTITY COMMANDNAME "plugin-runner">
6
 
<!ENTITY TIMESTAMP "2008-09-12">
 
5
<!ENTITY TIMESTAMP "2015-06-28">
 
6
<!ENTITY % common SYSTEM "common.ent">
 
7
%common;
7
8
]>
8
9
 
9
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
11
12
    <title>Mandos Manual</title>
12
13
    <!-- Nwalsh’s docbook scripts use this to generate the footer: -->
13
14
    <productname>Mandos</productname>
14
 
    <productnumber>&VERSION;</productnumber>
 
15
    <productnumber>&version;</productnumber>
15
16
    <date>&TIMESTAMP;</date>
16
17
    <authorgroup>
17
18
      <author>
18
19
        <firstname>Björn</firstname>
19
20
        <surname>Påhlsson</surname>
20
21
        <address>
21
 
          <email>belorn@fukt.bsnet.se</email>
 
22
          <email>belorn@recompile.se</email>
22
23
        </address>
23
24
      </author>
24
25
      <author>
25
26
        <firstname>Teddy</firstname>
26
27
        <surname>Hogeborn</surname>
27
28
        <address>
28
 
          <email>teddy@fukt.bsnet.se</email>
 
29
          <email>teddy@recompile.se</email>
29
30
        </address>
30
31
      </author>
31
32
    </authorgroup>
32
33
    <copyright>
33
34
      <year>2008</year>
 
35
      <year>2009</year>
 
36
      <year>2012</year>
34
37
      <holder>Teddy Hogeborn</holder>
35
38
      <holder>Björn Påhlsson</holder>
36
39
    </copyright>
54
57
      <command>&COMMANDNAME;</command>
55
58
      <group rep="repeat">
56
59
        <arg choice="plain"><option>--global-env=<replaceable
57
 
        >VAR</replaceable><literal>=</literal><replaceable
 
60
        >ENV</replaceable><literal>=</literal><replaceable
58
61
        >value</replaceable></option></arg>
59
62
        <arg choice="plain"><option>-G
60
 
        <replaceable>VAR</replaceable><literal>=</literal><replaceable
 
63
        <replaceable>ENV</replaceable><literal>=</literal><replaceable
61
64
        >value</replaceable> </option></arg>
62
65
      </group>
63
66
      <sbr/>
111
114
      <arg><option>--plugin-dir=<replaceable
112
115
      >DIRECTORY</replaceable></option></arg>
113
116
      <sbr/>
 
117
      <arg><option>--plugin-helper-dir=<replaceable
 
118
      >DIRECTORY</replaceable></option></arg>
 
119
      <sbr/>
114
120
      <arg><option>--config-file=<replaceable
115
121
      >FILE</replaceable></option></arg>
116
122
      <sbr/>
170
176
    <variablelist>
171
177
      <varlistentry>
172
178
        <term><option>--global-env
173
 
        <replaceable>VAR</replaceable><literal>=</literal><replaceable
 
179
        <replaceable>ENV</replaceable><literal>=</literal><replaceable
174
180
        >value</replaceable></option></term>
175
181
        <term><option>-G
176
 
        <replaceable>VAR</replaceable><literal>=</literal><replaceable
 
182
        <replaceable>ENV</replaceable><literal>=</literal><replaceable
177
183
        >value</replaceable></option></term>
178
184
        <listitem>
179
185
          <para>
258
264
            Disable the plugin named
259
265
            <replaceable>PLUGIN</replaceable>.  The plugin will not be
260
266
            started.
261
 
          </para>       
 
267
          </para>
262
268
        </listitem>
263
269
      </varlistentry>
264
270
      
317
323
      </varlistentry>
318
324
      
319
325
      <varlistentry>
 
326
        <term><option>--plugin-helper-dir
 
327
        <replaceable>DIRECTORY</replaceable></option></term>
 
328
        <listitem>
 
329
          <para>
 
330
            Specify a different plugin helper directory.  The default
 
331
            is <filename>/lib/mandos/plugin-helpers</filename>, which
 
332
            will exist in the initial <acronym>RAM</acronym> disk
 
333
            environment.  (This will simply be passed to all plugins
 
334
            via the <envar>MANDOSPLUGINHELPERDIR</envar> environment
 
335
            variable.  See <xref linkend="writing_plugins"/>)
 
336
          </para>
 
337
        </listitem>
 
338
      </varlistentry>
 
339
      
 
340
      <varlistentry>
320
341
        <term><option>--config-file
321
342
        <replaceable>FILE</replaceable></option></term>
322
343
        <listitem>
423
444
      <para>
424
445
        The plugin will run in the initial RAM disk environment, so
425
446
        care must be taken not to depend on any files or running
426
 
        services not available there.
 
447
        services not available there.  Any helper executables required
 
448
        by the plugin (which are not in the <envar>PATH</envar>) can
 
449
        be placed in the plugin helper directory, the name of which
 
450
        will be made available to the plugin via the
 
451
        <envar>MANDOSPLUGINHELPERDIR</envar> environment variable.
427
452
      </para>
428
453
      <para>
429
454
        The plugin must exit cleanly and free all allocated resources
472
497
      only passes on its environment to all the plugins.  The
473
498
      environment passed to plugins can be modified using the
474
499
      <option>--global-env</option> and <option>--env-for</option>
475
 
      options.
 
500
      options.  Also, the <option>--plugin-helper-dir</option> option
 
501
      will affect the environment variable
 
502
      <envar>MANDOSPLUGINHELPERDIR</envar> for the plugins.
476
503
    </para>
477
504
  </refsect1>
478
505
  
577
604
      <para>
578
605
 
579
606
<!-- do not wrap this line -->
580
 
<userinput>&COMMANDNAME;  --config-file=/etc/mandos/plugin-runner.conf --plugin-dir /usr/lib/mandos/plugins.d --options-for=mandos-client:--pubkey=/etc/keys/mandos/pubkey.txt,--seckey=/etc/keys/mandos/seckey.txt</userinput>
 
607
<userinput>cd /etc/keys/mandos; &COMMANDNAME;  --config-file=/etc/mandos/plugin-runner.conf --plugin-dir /usr/lib/mandos/plugins.d --options-for=mandos-client:--pubkey=pubkey.txt,--seckey=seckey.txt</userinput>
581
608
 
582
609
      </para>
583
610
    </informalexample>
615
642
  <refsect1 id="see_also">
616
643
    <title>SEE ALSO</title>
617
644
    <para>
 
645
      <citerefentry><refentrytitle>intro</refentrytitle>
 
646
      <manvolnum>8mandos</manvolnum></citerefentry>,
618
647
      <citerefentry><refentrytitle>cryptsetup</refentrytitle>
619
648
      <manvolnum>8</manvolnum></citerefentry>,
620
649
      <citerefentry><refentrytitle>crypttab</refentrytitle>