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

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
145
  Three additional plugins are provided:
148
146
  * usplash(8mandos)
154
152
    cryptsetup, this plugin listens to the same FIFO as askpass would
155
153
    do.
156
154
  
157
 
  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
158
158
  administrator; see the section called "WRITING PLUGINS" in
159
159
  plugin-runner(8mandos) to learn the plugin requirements.
160
160
 
161
161
* Copyright
162
162
 
163
 
    Copyright © 2008,2009 Teddy Hogeborn
164
 
    Copyright © 2008,2009 Björn Påhlsson
 
163
    Copyright © 2008 Teddy Hogeborn
 
164
    Copyright © 2008 Björn Påhlsson
165
165
  
166
166
** License:
167
167