/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-07-01 20:01:26 UTC
  • mto: This revision was merged to the branch mainline in revision 759.
  • Revision ID: teddy@recompile.se-20150701200126-qb3f6c3jcas2f4og
mandos-client: Try to start a plugin to add and remove a local route.

* debian/mandos-client.README.Debian: Add setting of environment
                                      variable MANDOSPLUGINHELPERDIR
                                      to command line testing
                                      mandos-client.
* mandos-client.c (raise_privileges): Moved to top of file.
                  (raise_privileges_permanently): - '' -
                  (lower_privileges): - '' -
                  (lower_privileges_permanently): - '' -
  (add_remove_local_route, add_local_route, remove_local_route): New.
  (start_mandos_communication): Set SOCK_CLOEXEC flag on socket.  Run
                                the above functions to add (and
                                remove) local route, if the conditions
                                indicates it could help.
  (run_network_hooks): Use O_DIRECTORY, O_PATH, and O_CLOEXEC flags
                       when opening network hook directory. Do
                       TEMP_FAILURE_RETRY around opening of /dev/null
                       and network hook executables.  Move redirecting
                       of stdout and stderr to as late as possible
                       before fexecve().
  (main): Use O_DIRECTORY and O_PATH when opening temporary directory.
* plugins.d/mandos-client.xml (ENVIRONMENT): Document usage of the
                                             MANDOSPLUGINHELPERDIR
                                             environment variable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
114
114
      <arg><option>--plugin-dir=<replaceable
115
115
      >DIRECTORY</replaceable></option></arg>
116
116
      <sbr/>
 
117
      <arg><option>--plugin-helper-dir=<replaceable
 
118
      >DIRECTORY</replaceable></option></arg>
 
119
      <sbr/>
117
120
      <arg><option>--config-file=<replaceable
118
121
      >FILE</replaceable></option></arg>
119
122
      <sbr/>
320
323
      </varlistentry>
321
324
      
322
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>
323
341
        <term><option>--config-file
324
342
        <replaceable>FILE</replaceable></option></term>
325
343
        <listitem>
426
444
      <para>
427
445
        The plugin will run in the initial RAM disk environment, so
428
446
        care must be taken not to depend on any files or running
429
 
        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.
430
452
      </para>
431
453
      <para>
432
454
        The plugin must exit cleanly and free all allocated resources
475
497
      only passes on its environment to all the plugins.  The
476
498
      environment passed to plugins can be modified using the
477
499
      <option>--global-env</option> and <option>--env-for</option>
478
 
      options.
 
500
      options.  Also, the <option>--plugin-helper-dir</option> option
 
501
      will affect the environment variable
 
502
      <envar>MANDOSPLUGINHELPERDIR</envar> for the plugins.
479
503
    </para>
480
504
  </refsect1>
481
505
  
572
596
    </informalexample>
573
597
    <informalexample>
574
598
      <para>
575
 
        Read a different configuration file, run plugins from a
576
 
        different directory, specify an alternate plugin helper
577
 
        directory and add two options to the
 
599
        Run plugins from a different directory, read a different
 
600
        configuration file, and add two options to the
578
601
        <citerefentry><refentrytitle >mandos-client</refentrytitle>
579
602
        <manvolnum>8mandos</manvolnum></citerefentry> plugin:
580
603
      </para>
581
604
      <para>
582
605
 
583
606
<!-- do not wrap this line -->
584
 
<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>
 
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>
585
608
 
586
609
      </para>
587
610
    </informalexample>