2018-07-03 05:15:39 +08:00
|
|
|
|
<?xml version='1.0'?>
|
2019-03-14 21:40:58 +08:00
|
|
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
2023-12-25 22:48:33 +08:00
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
2020-11-09 12:23:58 +08:00
|
|
|
|
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
2011-04-08 23:57:17 +08:00
|
|
|
|
|
2014-02-14 03:33:51 +08:00
|
|
|
|
<refentry id="systemd-ask-password"
|
2015-02-04 10:14:13 +08:00
|
|
|
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
|
|
|
|
|
|
|
|
<refentryinfo>
|
|
|
|
|
<title>systemd-ask-password</title>
|
|
|
|
|
<productname>systemd</productname>
|
|
|
|
|
</refentryinfo>
|
|
|
|
|
|
|
|
|
|
<refmeta>
|
|
|
|
|
<refentrytitle>systemd-ask-password</refentrytitle>
|
|
|
|
|
<manvolnum>1</manvolnum>
|
|
|
|
|
</refmeta>
|
|
|
|
|
|
|
|
|
|
<refnamediv>
|
|
|
|
|
<refname>systemd-ask-password</refname>
|
|
|
|
|
<refpurpose>Query the user for a system password</refpurpose>
|
|
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
|
|
<refsynopsisdiv>
|
|
|
|
|
<cmdsynopsis>
|
2023-12-23 22:21:58 +08:00
|
|
|
|
<command>systemd-ask-password</command> <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">MESSAGE</arg>
|
2015-02-04 10:14:13 +08:00
|
|
|
|
</cmdsynopsis>
|
|
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
2024-09-13 19:45:08 +08:00
|
|
|
|
<para><command>systemd-ask-password</command> may be used to query a password or passphrase interactively
|
|
|
|
|
from the user, using a question prompt specified on the command line. When run from a TTY it will query a
|
|
|
|
|
password on the TTY and print it to standard output. When run with no TTY or with
|
|
|
|
|
<option>--no-tty</option> it will use a system-wide or per-user agent-based query mechanism, which allows
|
|
|
|
|
active users to respond via several agents, listed below.</para>
|
|
|
|
|
|
|
|
|
|
<para>The purpose of this tool is to query system-wide or per-user passwords — the former includes
|
|
|
|
|
passwords possibly not associated to a specific user account. Examples include: unlocking encrypted hard
|
|
|
|
|
disks when they are plugged in or at boot, entering an SSL certificate passphrase for web and VPN
|
|
|
|
|
servers.</para>
|
|
|
|
|
|
|
|
|
|
<para>Existing system-level agents are:
|
2015-10-07 17:26:10 +08:00
|
|
|
|
<itemizedlist>
|
|
|
|
|
|
2024-09-13 19:45:08 +08:00
|
|
|
|
<listitem><para>A boot-time password agent asking the user for passwords using <citerefentry
|
|
|
|
|
project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
2017-01-10 02:51:06 +08:00
|
|
|
|
</para></listitem>
|
2015-10-07 17:26:10 +08:00
|
|
|
|
|
|
|
|
|
<listitem><para>A boot-time password agent querying the user
|
2017-01-10 02:51:06 +08:00
|
|
|
|
directly on the console —
|
|
|
|
|
<citerefentry><refentrytitle>systemd-ask-password-console.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
|
|
|
|
</para></listitem>
|
2015-10-07 17:26:10 +08:00
|
|
|
|
|
|
|
|
|
<listitem><para>An agent requesting password input via a
|
2017-01-10 02:51:06 +08:00
|
|
|
|
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
|
|
|
message —
|
|
|
|
|
<citerefentry><refentrytitle>systemd-ask-password-wall.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
|
|
|
|
</para></listitem>
|
2015-10-07 17:26:10 +08:00
|
|
|
|
|
|
|
|
|
<listitem><para>A TTY agent that is temporarily spawned during
|
|
|
|
|
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
2017-01-10 02:51:06 +08:00
|
|
|
|
invocations,</para></listitem>
|
|
|
|
|
|
|
|
|
|
<listitem><para>A command line agent which can be started
|
|
|
|
|
temporarily to process queued password
|
|
|
|
|
requests — <command>systemd-tty-ask-password-agent --query</command>.
|
|
|
|
|
</para></listitem>
|
2015-10-07 17:26:10 +08:00
|
|
|
|
</itemizedlist></para>
|
2015-02-04 10:14:13 +08:00
|
|
|
|
|
2017-01-10 02:51:06 +08:00
|
|
|
|
<para>Answering system-wide password queries is a privileged operation, hence
|
|
|
|
|
all the agents listed above (except for the last one), run as privileged
|
|
|
|
|
system services. The last one also needs elevated privileges, so
|
|
|
|
|
should be run through
|
2024-09-13 19:45:08 +08:00
|
|
|
|
<citerefentry><refentrytitle>run0</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
2017-01-10 02:51:06 +08:00
|
|
|
|
or similar.</para>
|
|
|
|
|
|
2024-09-13 19:45:08 +08:00
|
|
|
|
<para>Additional password agents may be implemented according to the <ulink
|
|
|
|
|
url="https://systemd.io/PASSWORD_AGENTS/">systemd Password Agent Specification</ulink>.</para>
|
2015-02-04 10:14:13 +08:00
|
|
|
|
|
|
|
|
|
<para>If a password is queried on a TTY, the user may press TAB to
|
|
|
|
|
hide the asterisks normally shown for each character typed.
|
|
|
|
|
Pressing Backspace as first key achieves the same effect.</para>
|
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
|
<title>Options</title>
|
|
|
|
|
|
|
|
|
|
<para>The following options are understood:</para>
|
|
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--icon=</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Specify an icon name alongside the password
|
|
|
|
|
query, which may be used in all agents supporting graphical
|
|
|
|
|
display. The icon name should follow the <ulink
|
2022-06-28 18:00:47 +08:00
|
|
|
|
url="https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
|
2015-02-04 10:14:13 +08:00
|
|
|
|
Icon Naming Specification</ulink>.</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2015-10-07 17:26:10 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--id=</option></term>
|
|
|
|
|
<listitem><para>Specify an identifier for this password
|
|
|
|
|
query. This identifier is freely choosable and allows
|
|
|
|
|
recognition of queries by involved agents. It should include
|
|
|
|
|
the subsystem doing the query and the specific object the
|
|
|
|
|
query is done for. Example:
|
2023-08-23 00:52:36 +08:00
|
|
|
|
<literal>--id=cryptsetup:/dev/sda5</literal>.</para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v227"/></listitem>
|
2015-10-07 17:26:10 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--keyname=</option></term>
|
|
|
|
|
<listitem><para>Configure a kernel keyring key name to use as
|
|
|
|
|
cache for the password. If set, then the tool will try to push
|
|
|
|
|
any collected passwords into the kernel keyring of the root
|
|
|
|
|
user, as a key of the specified name. If combined with
|
2014-08-03 13:11:12 +08:00
|
|
|
|
<option>--accept-cached</option>, it will also try to retrieve
|
2014-08-03 13:11:37 +08:00
|
|
|
|
such cached passwords from the key in the kernel keyring
|
2014-08-03 13:11:12 +08:00
|
|
|
|
instead of querying the user right away. By using this option,
|
2015-10-07 17:26:10 +08:00
|
|
|
|
the kernel keyring may be used as effective cache to avoid
|
|
|
|
|
repeatedly asking users for passwords, if there are multiple
|
|
|
|
|
objects that may be unlocked with the same password. The
|
|
|
|
|
cached key will have a timeout of 2.5min set, after which it
|
|
|
|
|
will be purged from the kernel keyring. Note that it is
|
|
|
|
|
possible to cache multiple passwords under the same keyname,
|
2020-11-12 15:58:00 +08:00
|
|
|
|
in which case they will be stored as <constant>NUL</constant>-separated list of
|
2015-10-07 17:26:10 +08:00
|
|
|
|
passwords. Use
|
2016-01-26 06:56:42 +08:00
|
|
|
|
<citerefentry project='die-net'><refentrytitle>keyctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
2015-10-07 17:26:10 +08:00
|
|
|
|
to access the cached key via the kernel keyring
|
2023-08-23 00:52:36 +08:00
|
|
|
|
directly. Example: <literal>--keyname=cryptsetup</literal></para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v227"/></listitem>
|
2015-10-07 17:26:10 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2021-03-12 03:17:10 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--credential=</option></term>
|
|
|
|
|
<listitem><para>Configure a credential to read the password from – if it exists. This may be used in
|
2023-01-13 23:22:46 +08:00
|
|
|
|
conjunction with the <varname>ImportCredential=</varname>, <varname>LoadCredential=</varname> and
|
|
|
|
|
<varname>SetCredential=</varname> settings in unit files. See
|
2021-03-12 03:17:10 +08:00
|
|
|
|
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
|
|
|
|
details. If not specified, defaults to <literal>password</literal>. This option has no effect if no
|
|
|
|
|
credentials directory is passed to the program (i.e. <varname>$CREDENTIALS_DIRECTORY</varname> is not
|
2023-08-23 00:52:36 +08:00
|
|
|
|
set) or if the no credential of the specified name exists.</para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v249"/></listitem>
|
2021-03-12 03:17:10 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--timeout=</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Specify the query timeout in seconds. Defaults
|
|
|
|
|
to 90s. A timeout of 0 waits indefinitely. </para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2021-06-03 16:41:05 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--echo=yes|no|masked</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Controls whether to echo user input. Takes a boolean or the special string
|
|
|
|
|
<literal>masked</literal>, the default being the latter. If enabled the typed characters are echoed
|
|
|
|
|
literally, which is useful for prompting for usernames and other non-protected data. If disabled the
|
|
|
|
|
typed characters are not echoed in any form, the user will not get feedback on their input. If set to
|
|
|
|
|
<literal>masked</literal>, an asterisk (<literal>*</literal>) is echoed for each character
|
|
|
|
|
typed. In this mode, if the user hits the tabulator key (<literal>↹</literal>), echo is turned
|
|
|
|
|
off. (Alternatively, if the user hits the backspace key (<literal>⌫</literal>) while no data has
|
2023-08-23 00:52:36 +08:00
|
|
|
|
been entered otherwise, echo is turned off, too).</para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v249"/></listitem>
|
2021-06-03 16:41:05 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--echo</option></term>
|
2021-06-03 16:41:05 +08:00
|
|
|
|
<term><option>-e</option></term>
|
2015-02-04 10:14:13 +08:00
|
|
|
|
|
2023-09-18 23:03:38 +08:00
|
|
|
|
<listitem><para>Equivalent to <option>--echo=yes</option>, see above.</para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v217"/></listitem>
|
2015-02-04 10:14:13 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2021-05-27 04:38:30 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--emoji=yes|no|auto</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Controls whether or not to prefix the query with a
|
|
|
|
|
lock and key emoji (🔐), if the TTY settings permit this. The default
|
|
|
|
|
is <literal>auto</literal>, which defaults to <literal>yes</literal>,
|
2023-08-23 00:52:36 +08:00
|
|
|
|
unless <option>--echo=yes</option> is given.</para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v249"/></listitem>
|
2021-05-27 04:38:30 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--no-tty</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Never ask for password on current TTY even if
|
|
|
|
|
one is available. Always use agent system.</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--accept-cached</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>If passed, accept cached passwords, i.e.
|
2014-08-03 13:11:37 +08:00
|
|
|
|
passwords previously entered.</para></listitem>
|
2015-02-04 10:14:13 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--multiple</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>When used in conjunction with
|
|
|
|
|
<option>--accept-cached</option> accept multiple passwords.
|
|
|
|
|
This will output one password per line.</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2016-03-01 04:04:02 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--no-output</option></term>
|
|
|
|
|
|
2021-06-23 19:45:31 +08:00
|
|
|
|
<listitem><para>Do not print passwords to standard output. This is useful if you want to store a
|
|
|
|
|
password in kernel keyring with <option>--keyname=</option> but do not want it to show up on screen
|
2023-08-23 00:52:36 +08:00
|
|
|
|
or in logs.</para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v230"/></listitem>
|
2021-06-23 19:45:31 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>-n</option></term>
|
|
|
|
|
|
2022-08-23 18:12:28 +08:00
|
|
|
|
<listitem><para>By default, when the acquired password is written to standard output it is suffixed
|
|
|
|
|
by a newline character. This may be turned off with the <option>-n</option> switch, similarly to the
|
|
|
|
|
switch of the same name of the <citerefentry
|
2021-06-23 19:45:31 +08:00
|
|
|
|
project='man-pages'><refentrytitle>echo</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
2023-08-23 00:52:36 +08:00
|
|
|
|
command.</para>
|
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v249"/></listitem>
|
2016-03-01 04:04:02 +08:00
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2024-09-13 19:45:08 +08:00
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>--user</option></term>
|
|
|
|
|
<term><option>--system</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Controls whether to query the system-wide or the per-user password agents. By default
|
|
|
|
|
if invoked privileged the system-wide agents are queried, otherwise the per-user ones. These options
|
2024-11-07 08:01:01 +08:00
|
|
|
|
allow one to override this automatic behaviour.</para>
|
2024-09-13 19:45:08 +08:00
|
|
|
|
|
|
|
|
|
<xi:include href="version-info.xml" xpointer="v257"/></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
|
<xi:include href="standard-options.xml" xpointer="help" />
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
|
<title>Exit status</title>
|
|
|
|
|
|
|
|
|
|
<para>On success, 0 is returned, a non-zero failure code
|
|
|
|
|
otherwise.</para>
|
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
|
<title>See Also</title>
|
2023-12-23 02:09:32 +08:00
|
|
|
|
<para><simplelist type="inline">
|
|
|
|
|
<member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
|
|
|
|
<member><citerefentry><refentrytitle>systemd-ask-password-console.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
|
|
|
|
<member><citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
|
|
|
|
<member><citerefentry project='die-net'><refentrytitle>keyctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
|
|
|
|
<member><citerefentry project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
|
|
|
|
<member><citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
|
|
|
|
</simplelist></para>
|
2015-02-04 10:14:13 +08:00
|
|
|
|
</refsect1>
|
2011-04-08 23:57:17 +08:00
|
|
|
|
|
|
|
|
|
</refentry>
|