/mandos/release

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

« back to all changes in this revision

Viewing changes to plugin-runner.xml

First version of a somewhat complete D-Bus server interface.  Also
change user/group name to "_mandos".

* debian/mandos.postinst: Rename old "mandos" user and group to
                          "_mandos"; create "_mandos" user and group
                          if none exist.
* debian/mandos-client.postinst: - '' -

* initramfs-tools-hook: Try "_mandos" before "mandos" as user and
                        group name.

* mandos (_datetime_to_dbus_struct): New; was previously local.
  (Client.started): Renamed to "last_started".  All users changed.
  (Client.started): New; boolean.
  (Client.dbus_object_path): New.
  (Client.check_command): Renamed to "checker_command".  All users
                          changed.
  (Client.__init__): Set and use "self.dbus_object_path".  Set
                     "self.started".
  (Client.start): Update "self.started".  Emit "self.PropertyChanged"
                  signals for both "started" and "last_started".
  (Client.stop): Update "self.started".  Emit "self.PropertyChanged"
                 signal for "started".
  (Client.checker_callback): Take additional "command" argument.  All
                             callers changed. Emit
                             "self.PropertyChanged" signal.
  (Client.bump_timeout): Emit "self.PropertyChanged" signal for
                         "last_checked_ok".
  (Client.start_checker): Emit "self.PropertyChanged" signal for
                          "checker_running".
  (Client.stop_checker): Emit "self.PropertyChanged" signal for
                         "checker_running".
  (Client.still_valid): Bug fix: use "getattr(self, started, False)"
                        instead of "self.started" in case this client
                        object is so new that the "started" attribute
                        has not been created yet.
  (Client.IntervalChanged, Client.CheckerIsRunning, Client.GetChecker,
  Client.GetCreated, Client.GetFingerprint, Client.GetHost,
  Client.GetInterval, Client.GetName, Client.GetStarted,
  Client.GetTimeout, Client.StateChanged, Client.TimeoutChanged):
  Removed; all callers changed.
  (Client.CheckerCompleted): Add "condition" and "command" arguments.
                             All callers changed.
  (Client.GetAllProperties, Client.PropertyChanged): New.
  (Client.StillValid): Renamed to "IsStillValid".
  (Client.StartChecker): Changed to its own function to avoid the
                         return value from "Client.start_checker()".
  (Client.Stop): Changed to its own function to avoid the return value
                 from "Client.stop()".
  (main): Try "_mandos" before "mandos" as user and group name.
          Removed inner function "remove_from_clients".  New inner
          class "MandosServer".

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
4
<!ENTITY COMMANDNAME "plugin-runner">
5
 
<!ENTITY TIMESTAMP "2016-03-17">
 
5
<!ENTITY TIMESTAMP "2008-09-30">
6
6
<!ENTITY % common SYSTEM "common.ent">
7
7
%common;
8
8
]>
19
19
        <firstname>Björn</firstname>
20
20
        <surname>Påhlsson</surname>
21
21
        <address>
22
 
          <email>belorn@recompile.se</email>
 
22
          <email>belorn@fukt.bsnet.se</email>
23
23
        </address>
24
24
      </author>
25
25
      <author>
26
26
        <firstname>Teddy</firstname>
27
27
        <surname>Hogeborn</surname>
28
28
        <address>
29
 
          <email>teddy@recompile.se</email>
 
29
          <email>teddy@fukt.bsnet.se</email>
30
30
        </address>
31
31
      </author>
32
32
    </authorgroup>
33
33
    <copyright>
34
34
      <year>2008</year>
35
 
      <year>2009</year>
36
 
      <year>2010</year>
37
 
      <year>2011</year>
38
 
      <year>2012</year>
39
 
      <year>2013</year>
40
 
      <year>2014</year>
41
 
      <year>2015</year>
42
 
      <year>2016</year>
43
35
      <holder>Teddy Hogeborn</holder>
44
36
      <holder>Björn Påhlsson</holder>
45
37
    </copyright>
120
112
      <arg><option>--plugin-dir=<replaceable
121
113
      >DIRECTORY</replaceable></option></arg>
122
114
      <sbr/>
123
 
      <arg><option>--plugin-helper-dir=<replaceable
124
 
      >DIRECTORY</replaceable></option></arg>
125
 
      <sbr/>
126
115
      <arg><option>--config-file=<replaceable
127
116
      >FILE</replaceable></option></arg>
128
117
      <sbr/>
270
259
            Disable the plugin named
271
260
            <replaceable>PLUGIN</replaceable>.  The plugin will not be
272
261
            started.
273
 
          </para>
 
262
          </para>       
274
263
        </listitem>
275
264
      </varlistentry>
276
265
      
329
318
      </varlistentry>
330
319
      
331
320
      <varlistentry>
332
 
        <term><option>--plugin-helper-dir
333
 
        <replaceable>DIRECTORY</replaceable></option></term>
334
 
        <listitem>
335
 
          <para>
336
 
            Specify a different plugin helper directory.  The default
337
 
            is <filename>/lib/mandos/plugin-helpers</filename>, which
338
 
            will exist in the initial <acronym>RAM</acronym> disk
339
 
            environment.  (This will simply be passed to all plugins
340
 
            via the <envar>MANDOSPLUGINHELPERDIR</envar> environment
341
 
            variable.  See <xref linkend="writing_plugins"/>)
342
 
          </para>
343
 
        </listitem>
344
 
      </varlistentry>
345
 
      
346
 
      <varlistentry>
347
321
        <term><option>--config-file
348
322
        <replaceable>FILE</replaceable></option></term>
349
323
        <listitem>
450
424
      <para>
451
425
        The plugin will run in the initial RAM disk environment, so
452
426
        care must be taken not to depend on any files or running
453
 
        services not available there.  Any helper executables required
454
 
        by the plugin (which are not in the <envar>PATH</envar>) can
455
 
        be placed in the plugin helper directory, the name of which
456
 
        will be made available to the plugin via the
457
 
        <envar>MANDOSPLUGINHELPERDIR</envar> environment variable.
 
427
        services not available there.
458
428
      </para>
459
429
      <para>
460
430
        The plugin must exit cleanly and free all allocated resources
503
473
      only passes on its environment to all the plugins.  The
504
474
      environment passed to plugins can be modified using the
505
475
      <option>--global-env</option> and <option>--env-for</option>
506
 
      options.  Also, the <option>--plugin-helper-dir</option> option
507
 
      will affect the environment variable
508
 
      <envar>MANDOSPLUGINHELPERDIR</envar> for the plugins.
 
476
      options.
509
477
    </para>
510
478
  </refsect1>
511
479
  
544
512
            </para>
545
513
          </listitem>
546
514
        </varlistentry>
547
 
        <varlistentry>
548
 
          <term><filename class="directory"
549
 
          >/lib/mandos/plugins.d</filename></term>
550
 
          <listitem>
551
 
            <para>
552
 
              The default plugin directory; can be changed by the
553
 
              <option>--plugin-dir</option> option.
554
 
            </para>
555
 
          </listitem>
556
 
        </varlistentry>
557
 
        <varlistentry>
558
 
          <term><filename class="directory"
559
 
          >/lib/mandos/plugin-helpers</filename></term>
560
 
          <listitem>
561
 
            <para>
562
 
              The default plugin helper directory; can be changed by
563
 
              the <option>--plugin-helper-dir</option> option.
564
 
            </para>
565
 
          </listitem>
566
 
        </varlistentry>
567
515
      </variablelist>
568
516
    </para>
569
517
  </refsect1>
574
522
      The <option>--config-file</option> option is ignored when
575
523
      specified from within a configuration file.
576
524
    </para>
577
 
    <xi:include href="bugs.xml"/>
578
525
  </refsect1>
579
526
  
580
527
  <refsect1 id="examples">
623
570
    </informalexample>
624
571
    <informalexample>
625
572
      <para>
626
 
        Read a different configuration file, run plugins from a
627
 
        different directory, specify an alternate plugin helper
628
 
        directory and add two options to the
 
573
        Run plugins from a different directory, read a different
 
574
        configuration file, and add two options to the
629
575
        <citerefentry><refentrytitle >mandos-client</refentrytitle>
630
576
        <manvolnum>8mandos</manvolnum></citerefentry> plugin:
631
577
      </para>
632
578
      <para>
633
579
 
634
580
<!-- do not wrap this line -->
635
 
<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>
 
581
<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>
636
582
 
637
583
      </para>
638
584
    </informalexample>
670
616
  <refsect1 id="see_also">
671
617
    <title>SEE ALSO</title>
672
618
    <para>
673
 
      <citerefentry><refentrytitle>intro</refentrytitle>
674
 
      <manvolnum>8mandos</manvolnum></citerefentry>,
675
619
      <citerefentry><refentrytitle>cryptsetup</refentrytitle>
676
620
      <manvolnum>8</manvolnum></citerefentry>,
677
621
      <citerefentry><refentrytitle>crypttab</refentrytitle>