Hi systemd-devel,

I'm on Debian Jessie running the default systemd-215.  I have a daemon (running 
as root, controlled by systemd), whose job it is to launch on-demand VNC 
servers for other users.  Currently, this daemon uses a shell command like the 
following to launch the vnc server for a given $USER:

  sudo -i -u $USER /bin/sh -l -c 'cd \$HOME && /path/to/vncserver $ARGS

The issue I'm having is that the user VNC sessions being created all share the 
same systemd login session as my daemon.  I can see this by running 
systemd-cgls.  The users of these VNC sessions would like to be able to use 
"systemd-run --user --scope -p MemoryLimit=X COMMAND" to launch a command with 
cgroup-based resource limiting.  However without a user session, this results 
in "Failed to create bus connection: Connection refused".

There's too many users to create static systemd unit files, and it doesn't seem 
like I can create and load .service files on the fly.  The "machinectl shell" 
command (https://github.com/systemd/systemd/pull/1022) looks promising, but 
unfortunately it's not in my systemd yet.  I've tried searching through this 
mailing list's history, but the results all were dead ends.

It seems like there's a lot of pieces needed to make this work (dbus, XDG env 
vars, systemd --user), and all of the recommendations say to go through 
pam_systemd.so.  I'm not afraid of interacting with PAM, but I don't really 
understand what's needed, and I can't actually authenticate as the user because 
I don't know their password (currently this daemon is root so it doesn't need a 
password to switch user).

If there is some kind of shell pipeline, or a wrapper script I can write to 
automate the necessary steps please let me know.

Thank you very much!

-Mike Gulick​
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to