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-ctl">
5
<!ENTITY TIMESTAMP "2017-02-23">
6
<!ENTITY % common SYSTEM "common.ent">
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
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>
19
<firstname>Björn</firstname>
20
<surname>Påhlsson</surname>
22
<email>belorn@recompile.se</email>
26
<firstname>Teddy</firstname>
27
<surname>Hogeborn</surname>
29
<email>teddy@recompile.se</email>
42
<holder>Teddy Hogeborn</holder>
43
<holder>Björn Påhlsson</holder>
45
<xi:include href="legalnotice.xml"/>
49
<refentrytitle>&COMMANDNAME;</refentrytitle>
50
<manvolnum>8</manvolnum>
54
<refname><command>&COMMANDNAME;</command></refname>
56
Control or query the operation of the Mandos server
62
<command>&COMMANDNAME;</command>
65
<arg choice="plain"><option>--enable</option></arg>
66
<arg choice="plain"><option>-e</option></arg>
68
<arg choice="plain"><option>--disable</option></arg>
69
<arg choice="plain"><option>-d</option></arg>
73
<arg choice="plain"><option>--bump-timeout</option></arg>
74
<arg choice="plain"><option>-b</option></arg>
78
<arg choice="plain"><option>--start-checker</option></arg>
82
<arg choice="plain"><option>--stop-checker</option></arg>
86
<arg choice="plain"><option>--remove</option></arg>
87
<arg choice="plain"><option>-r</option></arg>
91
<arg choice="plain"><option>--checker
92
<replaceable>COMMAND</replaceable></option></arg>
93
<arg choice="plain"><option>-c
94
<replaceable>COMMAND</replaceable></option></arg>
98
<arg choice="plain"><option>--timeout
99
<replaceable>TIME</replaceable></option></arg>
100
<arg choice="plain"><option>-t
101
<replaceable>TIME</replaceable></option></arg>
105
<arg choice="plain"><option>--extended-timeout
106
<replaceable>TIME</replaceable></option></arg>
110
<arg choice="plain"><option>--interval
111
<replaceable>TIME</replaceable></option></arg>
112
<arg choice="plain"><option>-i
113
<replaceable>TIME</replaceable></option></arg>
117
<arg choice="plain"><option>--approve-by-default</option
120
<arg choice="plain"><option>--deny-by-default</option></arg>
124
<arg choice="plain"><option>--approval-delay
125
<replaceable>TIME</replaceable></option></arg>
129
<arg choice="plain"><option>--approval-duration
130
<replaceable>TIME</replaceable></option></arg>
134
<arg choice="plain"><option>--interval
135
<replaceable>TIME</replaceable></option></arg>
136
<arg choice="plain"><option>-i
137
<replaceable>TIME</replaceable></option></arg>
141
<arg choice="plain"><option>--host
142
<replaceable>STRING</replaceable></option></arg>
143
<arg choice="plain"><option>-H
144
<replaceable>STRING</replaceable></option></arg>
148
<arg choice="plain"><option>--secret
149
<replaceable>FILENAME</replaceable></option></arg>
150
<arg choice="plain"><option>-s
151
<replaceable>FILENAME</replaceable></option></arg>
155
<arg choice="plain"><option>--approve</option></arg>
156
<arg choice="plain"><option>-A</option></arg>
158
<arg choice="plain"><option>--deny</option></arg>
159
<arg choice="plain"><option>-D</option></arg>
164
<arg choice="plain"><option>--all</option></arg>
165
<arg choice="plain"><option>-a</option></arg>
166
<arg rep='repeat' choice='plain'>
167
<replaceable>CLIENT</replaceable>
172
<command>&COMMANDNAME;</command>
174
<arg choice="plain"><option>--verbose</option></arg>
175
<arg choice="plain"><option>-v</option></arg>
177
<arg choice="plain"><option>--dump-json</option></arg>
178
<arg choice="plain"><option>-j</option></arg>
181
<arg rep='repeat' choice='plain'>
182
<replaceable>CLIENT</replaceable>
187
<command>&COMMANDNAME;</command>
189
<arg choice="plain"><option>--is-enabled</option></arg>
190
<arg choice="plain"><option>-V</option></arg>
192
<arg choice='plain'><replaceable>CLIENT</replaceable></arg>
195
<command>&COMMANDNAME;</command>
197
<arg choice="plain"><option>--help</option></arg>
198
<arg choice="plain"><option>-h</option></arg>
202
<command>&COMMANDNAME;</command>
204
<arg choice="plain"><option>--version</option></arg>
205
<arg choice="plain"><option>-v</option></arg>
209
<command>&COMMANDNAME;</command>
210
<arg choice="plain"><option>--check</option></arg>
214
<refsect1 id="description">
215
<title>DESCRIPTION</title>
217
<command>&COMMANDNAME;</command> is a program to control or
218
query the operation of the Mandos server
219
<citerefentry><refentrytitle>mandos</refentrytitle><manvolnum
220
>8</manvolnum></citerefentry>.
223
This program can be used to change client settings, approve or
224
deny client requests, and to remove clients from the server.
228
<refsect1 id="purpose">
229
<title>PURPOSE</title>
231
The purpose of this is to enable <emphasis>remote and unattended
232
rebooting</emphasis> of client host computer with an
233
<emphasis>encrypted root file system</emphasis>. See <xref
234
linkend="overview"/> for details.
238
<refsect1 id="options">
239
<title>OPTIONS</title>
243
<term><option>--help</option></term>
244
<term><option>-h</option></term>
247
Show a help message and exit
253
<term><option>--enable</option></term>
254
<term><option>-e</option></term>
257
Enable client(s). An enabled client will be eligble to
264
<term><option>--disable</option></term>
265
<term><option>-d</option></term>
268
Disable client(s). A disabled client will not be eligble
269
to receive its secret, and no checkers will be started for
276
<term><option>--bump-timeout</option></term>
279
Bump the timeout of the specified client(s), just as if a
280
checker had completed successfully for it/them.
286
<term><option>--start-checker</option></term>
289
Start a new checker now for the specified client(s).
295
<term><option>--stop-checker</option></term>
298
Stop any running checker for the specified client(s).
304
<term><option>--remove</option></term>
305
<term><option>-r</option></term>
308
Remove the specified client(s) from the server.
314
<term><option>--checker
315
<replaceable>COMMAND</replaceable></option></term>
317
<replaceable>COMMAND</replaceable></option></term>
320
Set the <varname>checker</varname> option of the specified
321
client(s); see <citerefentry><refentrytitle
322
>mandos-clients.conf</refentrytitle><manvolnum
323
>5</manvolnum></citerefentry>.
329
<term><option>--timeout
330
<replaceable>TIME</replaceable></option></term>
332
<replaceable>TIME</replaceable></option></term>
335
Set the <varname>timeout</varname> option of the specified
336
client(s); see <citerefentry><refentrytitle
337
>mandos-clients.conf</refentrytitle><manvolnum
338
>5</manvolnum></citerefentry>.
344
<term><option>--extended-timeout
345
<replaceable>TIME</replaceable></option></term>
348
Set the <varname>extended_timeout</varname> option of the
349
specified client(s); see <citerefentry><refentrytitle
350
>mandos-clients.conf</refentrytitle><manvolnum
351
>5</manvolnum></citerefentry>.
357
<term><option>--interval
358
<replaceable>TIME</replaceable></option></term>
360
<replaceable>TIME</replaceable></option></term>
363
Set the <varname>interval</varname> option of the
364
specified client(s); see <citerefentry><refentrytitle
365
>mandos-clients.conf</refentrytitle><manvolnum
366
>5</manvolnum></citerefentry>.
372
<term><option>--approve-by-default</option></term>
373
<term><option>--deny-by-default</option></term>
376
Set the <varname>approved_by_default</varname> option of
377
the specified client(s) to <literal>True</literal> or
378
<literal>False</literal>, respectively; see
379
<citerefentry><refentrytitle
380
>mandos-clients.conf</refentrytitle><manvolnum
381
>5</manvolnum></citerefentry>.
387
<term><option>--approval-delay
388
<replaceable>TIME</replaceable></option></term>
391
Set the <varname>approval_delay</varname> option of the
392
specified client(s); see <citerefentry><refentrytitle
393
>mandos-clients.conf</refentrytitle><manvolnum
394
>5</manvolnum></citerefentry>.
400
<term><option>--approval-duration
401
<replaceable>TIME</replaceable></option></term>
404
Set the <varname>approval_duration</varname> option of the
405
specified client(s); see <citerefentry><refentrytitle
406
>mandos-clients.conf</refentrytitle><manvolnum
407
>5</manvolnum></citerefentry>.
414
<replaceable>STRING</replaceable></option></term>
416
<replaceable>STRING</replaceable></option></term>
419
Set the <varname>host</varname> option of the specified
420
client(s); see <citerefentry><refentrytitle
421
>mandos-clients.conf</refentrytitle><manvolnum
422
>5</manvolnum></citerefentry>.
428
<term><option>--secret
429
<replaceable>FILENAME</replaceable></option></term>
431
<replaceable>FILENAME</replaceable></option></term>
434
Set the <varname>secfile</varname> option of the specified
435
client(s); see <citerefentry><refentrytitle
436
>mandos-clients.conf</refentrytitle><manvolnum
437
>5</manvolnum></citerefentry>.
443
<term><option>--approve</option></term>
444
<term><option>-A</option></term>
447
Approve client(s) if currently waiting for approval.
453
<term><option>--deny</option></term>
454
<term><option>-D</option></term>
457
Deny client(s) if currently waiting for approval.
463
<term><option>--all</option></term>
464
<term><option>-a</option></term>
467
Make the client-modifying options modify <emphasis
468
>all</emphasis> clients.
474
<term><option>--verbose</option></term>
475
<term><option>-v</option></term>
478
Show all client settings, not just a subset.
484
<term><option>--dump-json</option></term>
485
<term><option>-j</option></term>
488
Dump client settings as JSON to standard output.
494
<term><option>--is-enabled</option></term>
495
<term><option>-V</option></term>
498
Check if a single client is enabled or not, and exit with
499
a successful exit status only if the client is enabled.
505
<term><option>--check</option></term>
508
Run self-tests. This includes any unit tests, etc.
516
<refsect1 id="overview">
517
<title>OVERVIEW</title>
518
<xi:include href="overview.xml"/>
520
This program is a small utility to generate new OpenPGP keys for
521
new Mandos clients, and to generate sections for inclusion in
522
<filename>clients.conf</filename> on the server.
526
<refsect1 id="exit_status">
527
<title>EXIT STATUS</title>
529
If the <option>--is-enabled</option> option is used, the exit
530
status will be 0 only if the specified client is enabled.
536
<xi:include href="bugs.xml"/>
539
<refsect1 id="example">
540
<title>EXAMPLE</title>
546
<userinput>&COMMANDNAME;</userinput>
552
To list <emphasis>all</emphasis> settings for the clients
553
named <quote>foo1.example.org</quote> and <quote
554
>foo2.example.org</quote>:
558
<!-- do not wrap this line -->
559
<userinput>&COMMANDNAME; --verbose foo1.example.org foo2.example.org</userinput>
566
To enable all clients:
569
<userinput>&COMMANDNAME; --enable --all</userinput>
575
To change timeout and interval value for the clients
576
named <quote>foo1.example.org</quote> and <quote
577
>foo2.example.org</quote>:
581
<!-- do not wrap this line -->
582
<userinput>&COMMANDNAME; --timeout="5m" --interval="1m" foo1.example.org foo2.example.org</userinput>
589
To approve all clients currently waiting for it:
592
<userinput>&COMMANDNAME; --approve --all</userinput>
597
<refsect1 id="security">
598
<title>SECURITY</title>
600
This program must be permitted to access the Mandos server via
601
the D-Bus interface. This normally requires the root user, but
602
could be configured otherwise by reconfiguring the D-Bus server.
606
<refsect1 id="see_also">
607
<title>SEE ALSO</title>
609
<citerefentry><refentrytitle>intro</refentrytitle>
610
<manvolnum>8mandos</manvolnum></citerefentry>,
611
<citerefentry><refentrytitle>mandos</refentrytitle>
612
<manvolnum>8</manvolnum></citerefentry>,
613
<citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
614
<manvolnum>5</manvolnum></citerefentry>,
615
<citerefentry><refentrytitle>mandos-monitor</refentrytitle>
616
<manvolnum>8</manvolnum></citerefentry>
621
<!-- Local Variables: -->
622
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
623
<!-- time-stamp-end: "[\"']>" -->
624
<!-- time-stamp-format: "%:y-%02m-%02d" -->