-
-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
systemd multi seat support #1105
Comments
r12722 (+fixes in r12756 + r12761 + r12753 for osx) adds an "xpra" pam service so we can call See also: Is linux-PAM session same as linux process session?: The short answer is no, they're different things, but processes that handle login sessions should handle both of them. systemd-devel: The whole su/pkexec session debate: This way, screen will keep an "active" reference to the session and systemd-logind will not mark it as "closing". So the session that was nitiated by sshd will be kept open by "screen". Note that pam_open_session() without pam_authenticate() will not create a new session but only attach to the current session. |
Wait, as per [https://lists.freedesktop.org/archives/systemd-devel/2013-December/014996.html]: The session is still marked as "closing" but because processes still exist it never quite dies. And yes, the kill processes option (which is a nice thing to enable if possible) would indeed kill the screen. @jonathan.underwood: How on earth are we supposed to fix this thing? |
2016-06-18 17:27:19: jonathan.underwood commented
|
2016-06-18 17:32:37: jonathan.underwood commented
|
Users shouldn't really need to care about this low-level plumbing, so when they issue an "xpra start", they expect it to survive their current session (be it an ssh session, or even a full desktop environment). That's especially true of ssh sessions started with "xpra start ssh:HOST --start=xterm". So we would need to do this from "xpra start ...":
I tried to test this using a guest account:
And the xpra server survived... Fedora 24 all up to date. |
2016-08-17 08:58:48: antoine uploaded file
|
As of r13378, we now run server commands via systemd-run:
So we end up with a cgroup for the session, but there are problems:
(re-tested after the r13505 pam fix for xauth data) See also #1335 |
Instead of ensuring that the session survives, this seems to have the exact opposite effect (and worse - requiring a reboot to properly clear things), details in #1348. xpra does get killed unceremoniously but worst of all this seems to have an effect on ssh making the next login attempt take forever. (looks similar to systemd issue 2863) I've asked for help on the systemd-devel mailing list: PAM session hooks for independent session Alternatively, we could expand the proxy server to start new sessions on behalf of other users. The proxy server runs as root and should have sufficient privileges to invoke logind's createsession. Downsides: we don't currently require the proxy server to be running and this may slow down session startup. |
2016-11-16 06:33:42: antoine uploaded file
|
The answer from the systemd mailing list is that we do need a suid binary to do the registration: https://lists.freedesktop.org/archives/systemd-devel/2016-November/037700.html Too late to start messing with the suid / socket activation approaches now. |
2017-05-18 17:23:07: antoine commented
|
2017-05-21 19:49:34: antoine commented
|
2017-05-22 06:44:39: antoine uploaded file
|
2017-05-22 10:28:18: antoine commented
|
2017-05-24 12:27:13: antoine commented
|
2017-06-05 15:16:37: antoine commented
|
2017-06-20 18:02:03: antoine commented
|
2017-06-20 22:53:12: antoine commented
|
2017-06-21 13:55:31: antoine commented
|
2017-06-24 23:53:10: antoine commented
|
It turns out that the problem is not with the code or the pam module, though pam failures to call logind are not returned as errors, simply using a different service name fixes everything. (ie: "login" instead of "xpra") |
2017-06-26 20:37:05: antoine commented
|
2017-06-28 10:14:47: antoine uploaded file
|
One minor bug: #1582, need to continue to honour user preferences |
Another fix for the ticket that keeps on giving: r16391 (chdir so the cwd is what we expect) |
crickets - works for me, also tested on Debian: #1530 |
Likely to have caused a regression due to missing environment variables: #1602. |
See also #1129.
SetIdleHint
)The seat with vt number may be challenging since we don't have a vt number...
The text was updated successfully, but these errors were encountered: