I got a bit closer to the root cause of the problem: SDDM works and logs
me in when I start it by simply running 'sddm' from a root shell. But it
fails (with the symptoms described in this thread) when started using
systemd.

In what way can systemd be hurting sddm so that it can't log users in?

Two thoughts: first, after it fails, log into a CLI and run this:

systemctl status sddm

Compared to the strace wrapper I tried, combined with a careful inspection of 
logs from journalctl, status doesn't say too much:

        Dec 19 21:41:25 prdell.localdomain systemd[1]: Started Simple Desktop 
Display Manager.
        Dec 19 21:41:25 prdell.localdomain systemd[1]: Starting Simple Desktop 
Display Manager...
        Dec 19 21:41:27 prdell.localdomain sddm-helper[1893]: 
pam_unix(sddm-greeter:session): session opened for user sddm by (uid=0)
        Dec 19 21:41:31 prdell.localdomain sddm-helper[1945]: 
pam_kwallet5(sddm:auth): (null): pam_sm_authenticate
        Dec 19 21:41:31 prdell.localdomain sddm-helper[1945]: 
pam_kwallet(sddm:auth): (null): pam_sm_authenticate
        Dec 19 21:41:31 prdell.localdomain sddm[1880]: Oops, secure memory pool 
already initialized
        Dec 19 21:41:31 prdell.localdomain sddm-helper[1945]: 
pam_kwallet5(sddm:setcred): pam_kwallet5: pam_sm_setcred
        Dec 19 21:41:31 prdell.localdomain sddm-helper[1945]: 
pam_kwallet(sddm:setcred): pam_kwallet: pam_sm_setcred
        Dec 19 21:41:31 prdell.localdomain sddm[1880]: Auth: sddm-helper exited 
with 2
        Dec 19 21:41:32 prdell.localdomain sddm-helper[1970]: 
pam_unix(sddm-greeter:session): session opened for user sddm by (uid=0)

The sddm-helper exits with error code 2, quite likely due to the EPERM I saw in 
the strace logs. And as already mentioned, setting SELinux to permissive makes 
sddm just hang silently.

Second, try disabling the sddm.service and running sddm from rc.local instead.

That fails exactly the same way, which is no surprise, because rc.local is just 
yet another systemd service. There's indeed something in the environment set up 
by systemd that sddm just can't tolerate. I'm still not sure what this could be.

What extra restrictions does systemd impose, when compared to running stuff from a root 
shell? It has its own ulimit settings in /etc/systemd/system.conf, but sddm still fails 
the same way, with "vanilla" ulimit settings as well as with a relaxed vesion 
thereof.

Also tried to set PrivateTmp=true in sddm's unit file, just to check this out, 
but no, still the same problem. :-(

Andrej
--
users mailing list
users@lists.fedoraproject.org
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org

Reply via email to