MANDOS-CTL(8)

πŸ“¦
version 1.8.19 Β· 3 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– MANDOS-CTL(8) πŸ’–

okay bestie, sit down, hydrate, because we're about to talk about mandos-ctl β€” that's the little control freak of the Mandos manual family (it's section 8, system administration energy πŸ’…). It lives in the Mandos Manual and it is literally the remote control for your Mandos server.


✨ NAME ✨

mandos-ctl β€” control or query the operation of the Mandos server πŸŽ›οΈ


🌸 SYNOPSIS 🌸

mandos-ctl [--verbose | -v
            |--dump-json | -j] [--debug] [CLIENT...]

mandos-ctl {[--enable | -e
            |--disable | -d]
           [--bump-timeout | -b]
           [--start-checker | --stop-checker]
           [--checker COMMAND | -c COMMAND]
           [--timeout TIME | -t TIME]
           [--extended-timeout TIME]
           [--interval TIME | -i TIME]
           [--approve-by-default
            |--deny-by-default]
           [--approval-delay TIME]
           [--approval-duration TIME]
           [--host STRING | -H STRING]
           [--secret FILENAME | -s FILENAME]
           [--approve | -A
            |--deny | -D]}
           [--debug] {--all | -a | CLIENT...}

mandos-ctl [--deny | -D] {--remove | -r}
           [--debug] {--all | -a | CLIENT...}

mandos-ctl {--is-enabled | -V} [--debug] CLIENT

mandos-ctl {--help | -h}

mandos-ctl {--version | -v}

mandos-ctl --check

like, yes, that's a lot of braces. it's giving "choose your own adventure" and we love that for us πŸ¦‹


🫢 DESCRIPTION 🫢

mandos-ctl is a program to control or query the operation of the Mandos server mandos(8).

This program can be used to change client settings, approve or deny client requests, and to remove clients from the server. so basically it's the group chat admin of your server, no cap πŸ‘‘


πŸŽ€ PURPOSE πŸŽ€

The purpose of this is to enable remote and unattended rebooting of client host computer with an encrypted root file system. See the section called β€œOVERVIEW” for details. yes we're sending you to another section, it's fine, it's a whole lore drop and it's worth it πŸ’«


πŸ’… OPTIONS πŸ’…

  • --help, -h β€” Show a help message and exit. classic, iconic, always there for you.
  • --enable, -e β€” Enable client(s). An enabled client will be eligble to receive its secret. πŸ”“
  • --disable, -d β€” Disable client(s). A disabled client will not be eligble to receive its secret, and no checkers will be started for it. 🚫
  • --bump-timeout β€” Bump the timeout of the specified client(s), just as if a checker had completed successfully for it/them. lil nudge, lil push, slay ⏰
  • --start-checker β€” Start a new checker now for the specified client(s). ▢️
  • --stop-checker β€” Stop any running checker for the specified client(s). ⏹️
  • --remove, -r β€” Remove the specified client(s) from the server. bye bestie πŸ‘‹
  • --checker COMMAND, -c COMMAND β€” Set the checker option of the specified client(s); see mandos-clients.conf(5).
  • --timeout TIME, -t TIME β€” Set the timeout option of the specified client(s); see mandos-clients.conf(5).
  • --extended-timeout TIME β€” Set the extended_timeout option of the specified client(s); see mandos-clients.conf(5).
  • --interval TIME, -i TIME β€” Set the interval option of the specified client(s); see mandos-clients.conf(5).
  • --approve-by-default, --deny-by-default β€” Set the approved_by_default option of the specified client(s) to True or False, respectively; see mandos-clients.conf(5).
  • --approval-delay TIME β€” Set the approval_delay option of the specified client(s); see mandos-clients.conf(5).
  • --approval-duration TIME β€” Set the approval_duration option of the specified client(s); see mandos-clients.conf(5).
  • --host STRING, -H STRING β€” Set the host option of the specified client(s); see mandos-clients.conf(5).
  • --secret FILENAME, -s FILENAME β€” Set the secfile option of the specified client(s); see mandos-clients.conf(5).
  • --approve, -A β€” Approve client(s) if currently waiting for approval. βœ…
  • --deny, -D β€” Deny client(s) if currently waiting for approval. ❌
  • --all, -a β€” Make the client-modifying options modify all clients. everyone gets the treatment, periodt.
  • --verbose, -v β€” Show all client settings, not just a subset. the full tea β˜•
  • --dump-json, -j β€” Dump client settings as JSON to standard output. for the machine besties πŸ€–
  • --is-enabled, -V β€” Check if a single client is enabled or not, and exit with a successful exit status only if the client is enabled.
  • --debug β€” Show debug output; currently, this means show D-Bus calls. peek behind the curtain 🫣
  • --check β€” Run self-tests. This includes any unit tests, etc. self care is running your test suite πŸ§–

🌈 OVERVIEW 🌈

This is part of the Mandos system for allowing computers to have encrypted root file systems and at the same time be capable of remote and/or unattended reboots. The computers run a small client program in the initial RAM disk environment which will communicate with a server over a network. All network communication is encrypted using TLS. The clients are identified by the server using a TLS key; each client has one unique to it. The server sends the clients an encrypted password. The encrypted password is decrypted by the clients using a separate OpenPGP key, and the password is then used to unlock the root file system, whereupon the computers can continue booting normally.

This program is a small utility to generate new OpenPGP keys for new Mandos clients, and to generate sections for inclusion in clients.conf on the server.

not me just casually reciting the entire cryptographic lore. anyways. πŸ”βœ¨

⭐ EXIT STATUS ⭐

If the --is-enabled option is used, the exit status will be 0 only if the specified client is enabled.


πŸ’€ BUGS πŸ’€

Please report bugs to the Mandos development mailing list: <mandos-dev@recompile.se> (subscription required). Note that this list is public. The developers can be reached privately at <mandos@recompile.se> (OpenPGP key fingerprint 153A 37F1 0BBA 0435 987F 2C4A 7223 2973 CA34 C2C4 for encrypted mail).


πŸ“ EXAMPLE πŸ“

To list all clients:

mandos-ctl

To list all settings for the clients named β€œfoo1.example.org” and β€œfoo2.example.org”:

mandos-ctl --verbose foo1.example.org foo2.example.org

To enable all clients:

mandos-ctl --enable --all

To change timeout and interval value for the clients named β€œfoo1.example.org” and β€œfoo2.example.org”:

mandos-ctl --timeout=PT5M --interval=PT1M foo1.example.org foo2.example.org

To approve all clients currently waiting for approval:

mandos-ctl --approve --all

πŸ”₯ SECURITY πŸ”₯

This program must be permitted to access the Mandos server via the D-Bus interface. This normally requires the root user, but could be configured otherwise by reconfiguring the D-Bus server.

so like. it wants root. don't get weird about it. πŸ›‘οΈ

🧚 SEE ALSO 🧚

intro(8mandos), mandos(8), mandos-clients.conf(5), mandos-monitor(8)


Copyright Β© 2010-2019 Teddy Hogeborn, BjΓΆrn PΓ₯hlsson

This manual page is part of Mandos.

Mandos is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Mandos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Mandos. If not, see http://www.gnu.org/licenses/.


and that's the whole page, bestie πŸ’– This one's Mandos 1.8.19, dated 2019-07-29, and it's the MANDOS-CTL(8) page β€” go forth and control your server, main character πŸŽ€βœ¨

πŸ“¦ where this page comes from