[systemd-devel] Java program that prompts password using systemd service
Lennart Poettering
lennart at poettering.net
Wed Nov 28 08:31:43 UTC 2018
On Di, 27.11.18 19:07, Dinesh Prasanth Moluguwan Krishnamoorthy (dmoluguw at redhat.com) wrote:
> Hi,
>
> I'm trying to write a Java program that queries user for password. The
> difficulty I'm facing is, this java program is started using `systemd`
> service.
>
> I'm aware that `systemd` services are meant to run non-interactively.
> I'm trying to change it based on my program's need.
>
> I was reading about `ProcessBuilder` in Java to invoke `systemd-ask-
> password` command.
>
>
> public static void main(String arg[]) {
> try {
> ProcessBuilder pb = new
> ProcessBuilder();// padd user nuxwdog:internalDB mkdtest1 @u"});
> pb.command("/bin/bash", "-c", "systemd-ask-
> password internaldb: --no-output");
>
> pb.inheritIO();
> Process p = pb.start();
>
> Is there a way to query a password interactively from a Java program
> started using a systemd service?
If you run privileged you can implement this:
https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/
i.e. listen on an AF_UNIX/SOCK_DGRAM socket (not sure you can do that
from Java though?), then drop a file /run/systemd/ask-password that
describes the question you want to ask, and wait until you get a reply
on that socket. Then delete socket and file.
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list