/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 mandos-monitor.xml

  • Committer: Teddy Hogeborn
  • Date: 2019-08-02 22:16:53 UTC
  • Revision ID: teddy@recompile.se-20190802221653-ic1iko9hbefzwsk7
Fix bug in server Debian package: Fails to start on first install

There has been a very long-standing bug where installation of the
server (the "mandos" Debian package) would fail to start the server
properly right after installation.  It would work on manual (re)start
after installation, or after reboot, and even after package purge and
reinstall, it would then work the first time.  The problem, it turns
out, is when the new "_mandos" user (and corresponding group) is
created, the D-Bus server is not reloaded, and is therefore not aware
of that user, and does not recognize the user and group name in the
/etc/dbus-1/system.d/mandos.conf file.  The Mandos server, when it
tries to start and access the D-Bus, is then not permitted to connect
to its D-Bus bus name, and disables D-Bus use as a fallback measure;
i.e. the server works, but it is not controllable via D-Bus commands
(via mandos-ctl or mandos-monitor).  The next time the D-Bus daemon is
reloaded for any reason, the new user & group would become visible to
the D-Bus daemon and after that, any restart of the Mandos server
would succeed and it would bind to its D-Bus name properly, and
thereby be visible and controllable by mandos-ctl & mandos-monitor.
This was mostly invisible when using sysvinit, but systemd makes the
problem visible since the systemd service file for the Mandos server
is configured to not consider the Mandos server "started" until the
D-Bus name has been bound; this makes the starting of the service wait
for 90 seconds and then fail with a timeout error.

Fixing this should also make the Debian CI autopkgtest tests work.

* debian/mandos.postinst (configure): After creating (or renaming)
                                      user & group, reload D-Bus
                                      daemon (if present).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="UTF-8"?>
 
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
4
<!ENTITY COMMANDNAME "mandos-monitor">
 
5
<!ENTITY TIMESTAMP "2019-02-10">
 
6
<!ENTITY % common SYSTEM "common.ent">
 
7
%common;
 
8
]>
 
9
 
 
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
 
11
  <refentryinfo>
 
12
    <title>Mandos Manual</title>
 
13
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
 
14
    <productname>Mandos</productname>
 
15
    <productnumber>&version;</productnumber>
 
16
    <date>&TIMESTAMP;</date>
 
17
    <authorgroup>
 
18
      <author>
 
19
        <firstname>Björn</firstname>
 
20
        <surname>Påhlsson</surname>
 
21
        <address>
 
22
          <email>belorn@recompile.se</email>
 
23
        </address>
 
24
      </author>
 
25
      <author>
 
26
        <firstname>Teddy</firstname>
 
27
        <surname>Hogeborn</surname>
 
28
        <address>
 
29
          <email>teddy@recompile.se</email>
 
30
        </address>
 
31
      </author>
 
32
    </authorgroup>
 
33
    <copyright>
 
34
      <year>2010</year>
 
35
      <year>2011</year>
 
36
      <year>2012</year>
 
37
      <year>2013</year>
 
38
      <year>2014</year>
 
39
      <year>2015</year>
 
40
      <year>2016</year>
 
41
      <year>2017</year>
 
42
      <year>2018</year>
 
43
      <year>2019</year>
 
44
      <holder>Teddy Hogeborn</holder>
 
45
      <holder>Björn Påhlsson</holder>
 
46
    </copyright>
 
47
    <xi:include href="legalnotice.xml"/>
 
48
  </refentryinfo>
 
49
  
 
50
  <refmeta>
 
51
    <refentrytitle>&COMMANDNAME;</refentrytitle>
 
52
    <manvolnum>8</manvolnum>
 
53
  </refmeta>
 
54
  
 
55
  <refnamediv>
 
56
    <refname><command>&COMMANDNAME;</command></refname>
 
57
    <refpurpose>
 
58
      Text-based GUI to control the Mandos server.
 
59
    </refpurpose>
 
60
  </refnamediv>
 
61
  
 
62
  <refsynopsisdiv>
 
63
    <cmdsynopsis>
 
64
      <command>&COMMANDNAME;</command>
 
65
    </cmdsynopsis>
 
66
  </refsynopsisdiv>
 
67
  
 
68
  <refsect1 id="description">
 
69
    <title>DESCRIPTION</title>
 
70
    <para>
 
71
      <command>&COMMANDNAME;</command> is an interactive program to
 
72
      monitor and control the operations of the Mandos server (see
 
73
      <citerefentry><refentrytitle>mandos</refentrytitle><manvolnum
 
74
      >8</manvolnum></citerefentry>).
 
75
    </para>
 
76
  </refsect1>
 
77
  
 
78
  <refsect1 id="purpose">
 
79
    <title>PURPOSE</title>
 
80
    <para>
 
81
      The purpose of this is to enable <emphasis>remote and unattended
 
82
      rebooting</emphasis> of client host computer with an
 
83
      <emphasis>encrypted root file system</emphasis>.  See <xref
 
84
      linkend="overview"/> for details.
 
85
    </para>
 
86
  </refsect1>
 
87
  
 
88
  <refsect1 id="overview">
 
89
    <title>OVERVIEW</title>
 
90
    <xi:include href="overview.xml"/>
 
91
    <para>
 
92
      This program is used to monitor and control the Mandos server.
 
93
      In particular, it can be used to approve Mandos clients which
 
94
      have been configured to require approval.  It also shows all
 
95
      significant events reported by the Mandos server.
 
96
    </para>
 
97
  </refsect1>
 
98
  
 
99
  <refsect1 id="keys">
 
100
    <title>KEYS</title>
 
101
    <para>
 
102
      This program is used to monitor and control the Mandos server.
 
103
      In particular, it can be used to approve Mandos clients which
 
104
      have been configured to require approval.  It also shows all
 
105
      significant events reported by the Mandos server.
 
106
    </para>
 
107
    <table>
 
108
      <title>Global Keys</title><tgroup cols="2"><thead>
 
109
      <row>
 
110
        <entry>Keys</entry>
 
111
        <entry>Function</entry>
 
112
      </row>
 
113
      </thead><tbody>
 
114
      <row>
 
115
        <entry>q, Q</entry>
 
116
        <entry>Quit</entry>
 
117
      </row>
 
118
      <row>
 
119
        <entry>Ctrl-L</entry>
 
120
        <entry>Redraw screen</entry>
 
121
      </row>
 
122
      <row>
 
123
        <entry>?, F1</entry>
 
124
        <entry>Show help</entry>
 
125
      </row>
 
126
      <row>
 
127
        <entry>l, D</entry>
 
128
        <entry>Toggle log window</entry>
 
129
      </row>
 
130
      <row>
 
131
        <entry>TAB</entry>
 
132
        <entry>Switch window</entry>
 
133
      </row>
 
134
      <row>
 
135
        <entry>w, i</entry>
 
136
        <entry>Toggle log window line wrap</entry>
 
137
      </row>
 
138
      <row>
 
139
        <entry>v</entry>
 
140
        <entry>Toggle verbose logging</entry>
 
141
      </row>
 
142
      <row>
 
143
        <entry>Up, Ctrl-P, k</entry>
 
144
        <entry>Move up a line</entry>
 
145
      </row>
 
146
      <row>
 
147
        <entry>Down, Ctrl-N, j</entry>
 
148
        <entry>Move down a line</entry>
 
149
      </row>
 
150
      <row>
 
151
        <entry>PageUp, Meta-V, b</entry>
 
152
        <entry>Move up a page</entry>
 
153
      </row>
 
154
      <row>
 
155
        <entry>PageDown, Ctrl-V, SPACE, f</entry>
 
156
        <entry>Move down a page</entry>
 
157
      </row>
 
158
    </tbody></tgroup></table>
 
159
    <table>
 
160
      <title>Client List Keys</title><tgroup cols="2"><thead>
 
161
      <row>
 
162
        <entry>Keys</entry>
 
163
        <entry>Function</entry>
 
164
      </row>
 
165
      </thead><tbody>
 
166
      <row>
 
167
        <entry>+</entry>
 
168
        <entry>Enable client</entry>
 
169
      </row>
 
170
      <row>
 
171
        <entry>-</entry>
 
172
        <entry>Disable client</entry>
 
173
      </row>
 
174
      <row>
 
175
        <entry>a</entry>
 
176
        <entry>Approve client</entry>
 
177
      </row>
 
178
      <row>
 
179
        <entry>d</entry>
 
180
        <entry>Deny client</entry>
 
181
      </row>
 
182
      <row>
 
183
        <entry>R, _, Ctrl-K</entry>
 
184
        <entry>Remove client</entry>
 
185
      </row>
 
186
      <row>
 
187
        <entry>s</entry>
 
188
        <entry>Start checker for client</entry>
 
189
      </row>
 
190
      <row>
 
191
        <entry>S</entry>
 
192
        <entry>Stop checker for client</entry>
 
193
      </row>
 
194
      <row>
 
195
        <entry>C</entry>
 
196
        <entry>Force a successful check for this client.</entry>
 
197
      </row>
 
198
    </tbody></tgroup></table>
 
199
  </refsect1>
 
200
  
 
201
  <refsect1 id="bugs">
 
202
    <title>BUGS</title>
 
203
    <para>
 
204
      This program can currently only be used to monitor and control a
 
205
      Mandos server with the default D-Bus bus name of
 
206
      <quote>se.recompile.Mandos</quote>.
 
207
    </para>
 
208
    <xi:include href="bugs.xml"/>
 
209
  </refsect1>
 
210
  
 
211
  <refsect1 id="example">
 
212
    <title>EXAMPLE</title>
 
213
    <informalexample>
 
214
      <para>
 
215
        This program takes no options:
 
216
      </para>
 
217
      <para>
 
218
        <userinput>&COMMANDNAME;</userinput>
 
219
      </para>
 
220
    </informalexample>
 
221
  </refsect1>
 
222
  
 
223
  <refsect1 id="security">
 
224
    <title>SECURITY</title>
 
225
    <para>
 
226
      This program must be permitted to access the Mandos server via
 
227
      the D-Bus interface.  This normally requires the root user, but
 
228
      could be configured otherwise by reconfiguring the D-Bus server.
 
229
    </para>
 
230
  </refsect1>
 
231
  
 
232
  <refsect1 id="see_also">
 
233
    <title>SEE ALSO</title>
 
234
    <para>
 
235
      <citerefentry><refentrytitle>intro</refentrytitle>
 
236
      <manvolnum>8mandos</manvolnum></citerefentry>,
 
237
      <citerefentry><refentrytitle>mandos</refentrytitle>
 
238
      <manvolnum>8</manvolnum></citerefentry>,
 
239
      <citerefentry><refentrytitle>mandos-ctl</refentrytitle>
 
240
      <manvolnum>8</manvolnum></citerefentry>
 
241
    </para>
 
242
  </refsect1>
 
243
  
 
244
</refentry>
 
245
<!-- Local Variables: -->
 
246
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
 
247
<!-- time-stamp-end: "[\"']>" -->
 
248
<!-- time-stamp-format: "%:y-%02m-%02d" -->
 
249
<!-- End: -->