SPLASHY(8mandos)
π SPLASHY β the Mandos plugin that steals a password out of splashy β¨
okay bestie, welcome to SPLASHY(8mandos), a page straight out of the Mandos Manual. it's short, it's dramatic, it's giving "tiny program, huge responsibilities." let's get into it π«Ά
πΈ NAME πΈ
splashy β a Mandos plugin that uses splashy to get a password. that's it. that's the whole job. iconic behavior honestly.
β¨ SYNOPSIS β¨
splashy
no flags, no args, no notes. she simply is. π
π¦ DESCRIPTION π¦
so like, this program prompts you for a password using splashy_update(8), and then it outputs whatever password you gave it to standard output. that's the vibe. π
and if it can't find any running splashy(8) process? bestie, it does not wait around. it immediately exits with an exit code that means "failure." no splashy, no password, no service. π
now β and this is the important part β this program is not very useful on its own. fr fr. it's really meant to run as a plugin inside the Mandos client-side system, where it acts as a fallback and alternative to getting passwords from a Mandos server. she's a supporting character, not the lead. (though lowkey, every main character needs a solid bestie. π«Ά)
and here's the messy part: if this program gets killed β which would presumably be plugin-runner(8mandos) doing it, because some other plugin already got the password β it cannot tell splashy(8) to abort its password request. why? because splashy(8) just doesn't support that. π
so what does it do instead? it kills the running splashy(8) process and starts a brand new one, using βbootβ as the only argument. chaotic? yes. necessary? also yes. periodt.
π OPTIONS π
This program takes no options.
that's the whole section. she said "I don't do options." queen. β¨
π EXIT STATUS π
- if exit status is
0β slay, the output from the program is the password exactly as it was read. π - if exit status is anything other than
0β the program was interrupted or hit an error, and any output so far could be corrupt and/or truncated, so you should ignore it. don't trust it. throw it away. it's not real. π
π ENVIRONMENT π
cryptsource,crypttargetβ if these are set, they're assumed to hold the source device name and the target device mapper name respectively, and they'll get shown as part of the prompt. cute little context for your eyeballs. β¨
these variables will normally be inherited from plugin-runner(8mandos), which might have in turn inherited them from its calling process. it's giving family heirloom. π§¬
this behavior is meant to exactly mirror the behavior of askpass, the default password prompter. twins. π
π FILES π
/sbin/splashy_updateβ this is the command that gets run to retrieve a password fromsplashy(8). seesplashy_update(8). π/procβ to find the runningsplashy(8), this directory gets searched for numeric entries, which are assumed to be directories. inside every one of those directories, theexeentry is used to figure out the name of the running binary and the effective user and group ID of the process. seeproc(5). lowkey forensic work ngl π/sbin/splashyβ this is the name of the binary that gets searched for in the process list. seesplashy(8). π¦
π BUGS π
killing splashy(8) and starting a whole new one is ugly, but it's necessary as long as splashy doesn't support aborting a password request. not our fault, we're just working with what we've got. π
please report bugs to the Mandos development mailing list: <mandos-dev@recompile.se> (subscription required). note that this list is public β so like, everyone can see it, okay? 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 β
note that normally, this program will not be invoked directly β instead it gets started by the Mandos plugin-runner(8mandos). she has people for that. π
this program takes no options. (again. still. forever.)
splashy
π¨ SECURITY π¨
okay this is the serious section bestie, sit up. π«Ά
if this program is killed by a signal, it will kill the process ID which β at the start of this program β was determined to be running splashy(8) as root (see the section called βFILESβ). there is a very slight risk that in the time between those two events, that process ID was freed and then taken up by another process; the wrong process would then get killed. yikes. π
now, this program can only be killed by the user who started it; see plugin-runner(8mandos). this program should therefore be started by a completely separate non-privileged user, and no other programs should be allowed to run as that special user. this means it is not recommended to use the user "nobody" to start this program, because other possibly-less-trusted programs could be running as "nobody", and they'd then be able to kill this program, triggering the killing of the process ID which may or may not actually be splashy(8). messy messy messy. π
the only other thing that could be considered worthy of note is this: this program is meant to be run by plugin-runner(8mandos), and will β when run standalone, outside, in a normal environment β immediately output on its standard output any presumably secret password it just received. so when running this program standalone (which should never normally be done), take care not to type in any real secret password by force of habit, because it would then immediately be shown as output. muscle memory betrayal fr fr. π
π SEE ALSO π
intro(8mandos), plugin-runner(8mandos), proc(5), splashy(8), splashy_update(8)
π COPYRIGHT π
Copyright Β© 2008-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. slay, freedom. π¦
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. (no cap, read the license. π)
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 was Mandos 1.8.19, dated 2019-02-10 β written for SPLASHY(8mandos) and honestly? she ate. go get those passwords. π«Άππ¦
π¦ where this page comes from
- debian trixie: mandos-client 1.8.19-1 Β· GPL-3.0-or-later
- ubuntu questing: mandos-client 1.8.19-1
- ubuntu resolute: mandos-client 1.8.19-1build1 Β· GPL-3.0-or-later
- ubuntu stonking: mandos-client 1.8.19-1.1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms