/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 README

  • Committer: Teddy Hogeborn
  • Date: 2008-12-10 01:26:02 UTC
  • mfrom: (237.1.2 mandos)
  • Revision ID: teddy@fukt.bsnet.se-20081210012602-vhz3h75xkj24t340
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:
99
99
   Multiple Mandos servers can coexist on a network without any
100
100
   trouble.  They do not clash, and clients will try all available
101
101
   servers.  This means that if just one reboots then the other can
102
 
   bring it back up, but if both reboot at the same time they will
 
102
   bring it back up, but if both reboots at the same time they will
103
103
   stay down until someone types in the password on one of them.
104
104
 
105
105
** Faking ping replies?
134
134
  In the early designs, the mandos-client(8mandos) program (which
135
135
  retrieves a password from the Mandos server) also prompted for a
136
136
  password on the terminal, in case a Mandos server could not be
137
 
  found.  Other ways of retrieving a password could easily be
138
 
  envisoned, but this multiplicity of purpose was seen to be too
139
 
  complex to be a viable way to continue.  Instead, the original
140
 
  program was separated into mandos-client(8mandos) and
141
 
  password-prompt(8mandos), and a plugin-runner(8mandos) exist to run
142
 
  them both in parallel, allowing the first successful plugin to
143
 
  provide the password.  This opened up for any number of additional
144
 
  plugins to run, all competing to be the first to find a password and
145
 
  provide it to the plugin runner.
 
137
  found.  This duality of purpose was seen to be too complex to be a
 
138
  viable way to continue.  Instead, the programs are now separated
 
139
  into mandos-client(8mandos) and password-prompt(8mandos), and a
 
140
  plugin-runner(8mandos) exist to run them both in parallel, allowing
 
141
  the first plugin to succeed to provide the password.  This opened up
 
142
  for any number of additional plugins to run, all competing to be the
 
143
  first to find a password and provide it to the plugin runner.
146
144
  
147
 
  Four additional plugins are provided:
148
 
  * plymouth(8mandos)
149
 
    This prompts for a password when using plymouth(8).
 
145
  Three additional plugins are provided:
150
146
  * usplash(8mandos)
151
147
    This prompts for a password when using usplash(8).
152
148
  * splashy(8mandos)
156
152
    cryptsetup, this plugin listens to the same FIFO as askpass would
157
153
    do.
158
154
  
159
 
  More plugins can easily be written and added by the system
 
155
  (None of these take any options or reads any files.)
 
156
  
 
157
  More plugins could easily be written and added by the system
160
158
  administrator; see the section called "WRITING PLUGINS" in
161
159
  plugin-runner(8mandos) to learn the plugin requirements.
162
160
 
163
161
* Copyright
164
162
 
165
 
    Copyright © 2008-2011 Teddy Hogeborn
166
 
    Copyright © 2008-2011 Björn Påhlsson
 
163
    Copyright © 2008 Teddy Hogeborn
 
164
    Copyright © 2008 Björn Påhlsson
167
165
  
168
166
** License:
169
167