bzr branch
http://bzr.recompile.se/loggerhead/mandos/trunk
435
by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos". |
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 "plymouth">
|
|
493
by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos". |
5 |
<!ENTITY TIMESTAMP "2011-08-08">
|
435
by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos". |
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@fukt.bsnet.se</email> |
|
23 |
</address> |
|
24 |
</author> |
|
25 |
<author> |
|
26 |
<firstname>Teddy</firstname> |
|
27 |
<surname>Hogeborn</surname> |
|
28 |
<address> |
|
29 |
<email>teddy@fukt.bsnet.se</email> |
|
30 |
</address> |
|
31 |
</author> |
|
32 |
</authorgroup> |
|
33 |
<copyright> |
|
444
by Teddy Hogeborn
Update copyright year to "2010" wherever appropriate. |
34 |
<year>2010</year> |
466
by Teddy Hogeborn
Update copyright year to "2011" wherever appropriate. |
35 |
<year>2011</year> |
435
by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos". |
36 |
<holder>Teddy Hogeborn</holder> |
37 |
<holder>Björn Påhlsson</holder> |
|
38 |
</copyright> |
|
39 |
<xi:include href="../legalnotice.xml"/> |
|
40 |
</refentryinfo> |
|
41 |
|
|
42 |
<refmeta> |
|
43 |
<refentrytitle>&COMMANDNAME;</refentrytitle> |
|
44 |
<manvolnum>8mandos</manvolnum> |
|
45 |
</refmeta> |
|
46 |
|
|
47 |
<refnamediv> |
|
48 |
<refname><command>&COMMANDNAME;</command></refname> |
|
49 |
<refpurpose>Mandos plugin to use plymouth to get a |
|
50 |
password.</refpurpose> |
|
51 |
</refnamediv> |
|
52 |
|
|
53 |
<refsynopsisdiv> |
|
54 |
<cmdsynopsis> |
|
55 |
<command>&COMMANDNAME;</command> |
|
56 |
</cmdsynopsis> |
|
57 |
</refsynopsisdiv> |
|
58 |
|
|
59 |
<refsect1 id="description"> |
|
60 |
<title>DESCRIPTION</title> |
|
61 |
<para> |
|
62 |
This program prompts for a password using <citerefentry> |
|
63 |
<refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum> |
|
64 |
</citerefentry> and outputs any given password to standard |
|
65 |
output. If no <citerefentry><refentrytitle |
|
66 |
>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
|
67 |
process can be found, this program will immediately exit with an |
|
68 |
exit code indicating failure. |
|
69 |
</para> |
|
70 |
<para> |
|
71 |
This program is not very useful on its own. This program is |
|
72 |
really meant to run as a plugin in the <application |
|
73 |
>Mandos</application> client-side system, where it is used as a |
|
74 |
fallback and alternative to retrieving passwords from a |
|
75 |
<application >Mandos</application> server. |
|
76 |
</para> |
|
77 |
<para> |
|
78 |
If this program is killed (presumably by |
|
79 |
<citerefentry><refentrytitle>plugin-runner</refentrytitle> |
|
80 |
<manvolnum>8mandos</manvolnum></citerefentry> because some other |
|
81 |
plugin provided the password), it cannot tell <citerefentry> |
|
82 |
<refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum> |
|
83 |
</citerefentry> to abort requesting a password, because |
|
84 |
<citerefentry><refentrytitle>plymouth</refentrytitle> |
|
85 |
<manvolnum>8</manvolnum></citerefentry> does not support this. |
|
86 |
Therefore, this program will then <emphasis>kill</emphasis> the |
|
87 |
running <citerefentry><refentrytitle>plymouth</refentrytitle> |
|
88 |
<manvolnum>8</manvolnum></citerefentry> process and start a |
|
89 |
<emphasis>new</emphasis> one using the same command line |
|
90 |
arguments as the old one was using. |
|
91 |
</para> |
|
92 |
</refsect1> |
|
93 |
|
|
94 |
<refsect1 id="options"> |
|
95 |
<title>OPTIONS</title> |
|
96 |
<para> |
|
97 |
This program takes no options. |
|
98 |
</para> |
|
99 |
</refsect1> |
|
100 |
|
|
101 |
<refsect1 id="exit_status"> |
|
102 |
<title>EXIT STATUS</title> |
|
103 |
<para> |
|
104 |
If exit status is 0, the output from the program is the password |
|
105 |
as it was read. Otherwise, if exit status is other than 0, the |
|
106 |
program was interrupted or encountered an error, and any output |
|
107 |
so far could be corrupt and/or truncated, and should therefore |
|
108 |
be ignored. |
|
109 |
</para> |
|
110 |
</refsect1> |
|
111 |
|
|
112 |
<refsect1 id="environment"> |
|
113 |
<title>ENVIRONMENT</title> |
|
114 |
<variablelist> |
|
115 |
<varlistentry> |
|
116 |
<term><envar>cryptsource</envar></term> |
|
117 |
<term><envar>crypttarget</envar></term> |
|
118 |
<listitem> |
|
119 |
<para> |
|
120 |
If set, these environment variables will be assumed to |
|
121 |
contain the source device name and the target device |
|
122 |
mapper name, respectively, and will be shown as part of |
|
123 |
the prompt. |
|
124 |
</para> |
|
125 |
<para> |
|
126 |
These variables will normally be inherited from |
|
127 |
<citerefentry><refentrytitle>plugin-runner</refentrytitle> |
|
128 |
<manvolnum>8mandos</manvolnum></citerefentry>, which will |
|
129 |
normally have inherited them from |
|
130 |
<filename>/scripts/local-top/cryptroot</filename> in the |
|
131 |
initial <acronym>RAM</acronym> disk environment, which will |
|
132 |
have set them from parsing kernel arguments and |
|
133 |
<filename>/conf/conf.d/cryptroot</filename> (also in the |
|
134 |
initial RAM disk environment), which in turn will have been |
|
135 |
created when the initial RAM disk image was created by |
|
136 |
<filename |
|
137 |
>/usr/share/initramfs-tools/hooks/cryptroot</filename>, by |
|
138 |
extracting the information of the root file system from |
|
139 |
<filename >/etc/crypttab</filename>. |
|
140 |
</para> |
|
141 |
<para> |
|
142 |
This behavior is meant to exactly mirror the behavior of |
|
143 |
<command>askpass</command>, the default password prompter. |
|
144 |
</para> |
|
145 |
</listitem> |
|
146 |
</varlistentry> |
|
147 |
</variablelist> |
|
148 |
</refsect1> |
|
149 |
|
|
150 |
<refsect1 id="files"> |
|
151 |
<title>FILES</title> |
|
152 |
<variablelist> |
|
153 |
<varlistentry> |
|
154 |
<term><filename>/bin/plymouth</filename></term> |
|
155 |
<listitem> |
|
156 |
<para> |
|
157 |
This is the command run to retrieve a password from |
|
158 |
<citerefentry><refentrytitle>plymouth</refentrytitle> |
|
159 |
<manvolnum>8</manvolnum></citerefentry>. |
|
160 |
</para> |
|
161 |
</listitem> |
|
162 |
</varlistentry> |
|
163 |
<varlistentry> |
|
164 |
<term><filename>/proc</filename></term> |
|
165 |
<listitem> |
|
166 |
<para> |
|
167 |
To find the running <citerefentry><refentrytitle |
|
168 |
>plymouth</refentrytitle><manvolnum>8</manvolnum> |
|
169 |
</citerefentry>, this directory will be searched for |
|
170 |
numeric entries which will be assumed to be directories. |
|
171 |
In all those directories, the <filename>exe</filename> and |
|
172 |
<filename>cmdline</filename> entries will be used to |
|
173 |
determine the name of the running binary, effective user |
|
174 |
and group <abbrev>ID</abbrev>, and the command line |
|
175 |
arguments. See <citerefentry><refentrytitle |
|
176 |
>proc</refentrytitle><manvolnum>5</manvolnum> |
|
177 |
</citerefentry>. |
|
178 |
</para> |
|
179 |
</listitem> |
|
180 |
</varlistentry> |
|
181 |
<varlistentry> |
|
182 |
<term><filename>/sbin/plymouthd</filename></term> |
|
183 |
<listitem> |
|
184 |
<para> |
|
185 |
This is the name of the binary which will be searched for |
|
186 |
in the process list. See <citerefentry><refentrytitle |
|
187 |
>plymouth</refentrytitle><manvolnum>8</manvolnum> |
|
188 |
</citerefentry>. |
|
189 |
</para> |
|
190 |
</listitem> |
|
191 |
</varlistentry> |
|
192 |
</variablelist> |
|
193 |
</refsect1> |
|
194 |
|
|
195 |
<refsect1 id="bugs"> |
|
196 |
<title>BUGS</title> |
|
197 |
<para> |
|
198 |
Killing the <citerefentry><refentrytitle |
|
199 |
>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
|
200 |
daemon and starting a new one is ugly, but necessary as long as |
|
201 |
it does not support aborting a password request. |
|
202 |
</para> |
|
203 |
</refsect1> |
|
204 |
|
|
205 |
<refsect1 id="example"> |
|
206 |
<title>EXAMPLE</title> |
|
207 |
<para> |
|
208 |
Note that normally, this program will not be invoked directly, |
|
209 |
but instead started by the Mandos <citerefentry><refentrytitle |
|
210 |
>plugin-runner</refentrytitle><manvolnum>8mandos</manvolnum> |
|
211 |
</citerefentry>. |
|
212 |
</para> |
|
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 |
If this program is killed by a signal, it will kill the process |
|
227 |
<abbrev>ID</abbrev> which at the start of this program was |
|
228 |
determined to run <citerefentry><refentrytitle |
|
229 |
>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
|
230 |
as root (see also <xref linkend="files"/>). There is a very |
|
231 |
slight risk that, in the time between those events, that process |
|
232 |
<abbrev>ID</abbrev> was freed and then taken up by another |
|
233 |
process; the wrong process would then be killed. Now, this |
|
234 |
program can only be killed by the user who started it; see |
|
235 |
<citerefentry><refentrytitle>plugin-runner</refentrytitle> |
|
236 |
<manvolnum>8mandos</manvolnum></citerefentry>. This program |
|
237 |
should therefore be started by a completely separate |
|
238 |
non-privileged user, and no other programs should be allowed to |
|
239 |
run as that special user. This means that it is not recommended |
|
240 |
to use the user "nobody" to start this program, as other |
|
241 |
possibly less trusted programs could be running as "nobody", and |
|
242 |
they would then be able to kill this program, triggering the |
|
243 |
killing of the process <abbrev>ID</abbrev> which may or may not |
|
244 |
be <citerefentry><refentrytitle>plymouth</refentrytitle> |
|
245 |
<manvolnum>8</manvolnum></citerefentry>. |
|
246 |
</para> |
|
247 |
<para> |
|
248 |
The only other thing that could be considered worthy of note is |
|
249 |
this: This program is meant to be run by <citerefentry> |
|
250 |
<refentrytitle>plugin-runner</refentrytitle><manvolnum |
|
251 |
>8mandos</manvolnum></citerefentry>, and will, when run |
|
252 |
standalone, outside, in a normal environment, immediately output |
|
253 |
on its standard output any presumably secret password it just |
|
254 |
received. Therefore, when running this program standalone |
|
255 |
(which should never normally be done), take care not to type in |
|
256 |
any real secret password by force of habit, since it would then |
|
257 |
immediately be shown as output. |
|
258 |
</para> |
|
259 |
</refsect1> |
|
260 |
|
|
261 |
<refsect1 id="see_also"> |
|
262 |
<title>SEE ALSO</title> |
|
263 |
<para> |
|
493
by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos". |
264 |
<citerefentry><refentrytitle>intro</refentrytitle> |
265 |
<manvolnum>8mandos</manvolnum></citerefentry>, |
|
435
by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos". |
266 |
<citerefentry><refentrytitle>crypttab</refentrytitle> |
267 |
<manvolnum>5</manvolnum></citerefentry>, |
|
268 |
<citerefentry><refentrytitle>plugin-runner</refentrytitle> |
|
269 |
<manvolnum>8mandos</manvolnum></citerefentry>, |
|
270 |
<citerefentry><refentrytitle>proc</refentrytitle> |
|
271 |
<manvolnum>5</manvolnum></citerefentry>, |
|
272 |
<citerefentry><refentrytitle>plymouth</refentrytitle> |
|
273 |
<manvolnum>8</manvolnum></citerefentry> |
|
274 |
</para> |
|
275 |
</refsect1> |
|
276 |
</refentry>
|
|
277 |
<!-- Local Variables: -->
|
|
278 |
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
|
|
279 |
<!-- time-stamp-end: "[\"']>" -->
|
|
280 |
<!-- time-stamp-format: "%:y-%02m-%02d" -->
|
|
281 |
<!-- End: -->
|