<div dir="ltr">Hi Yves-Alexis,<br><br><div class="gmail_extra"><div class="gmail_quote">On 29 January 2014 23:07, Yves-Alexis Perez <span dir="ltr"><<a href="mailto:corsac@debian.org" target="_blank">corsac@debian.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA512<br>
<br>
Hi,<br>
<br>
I have a question about the dm-tool and especially the lock part. As I<br>
understand it, it's supposed to be used with a locker (like<br>
light-locker, but also stuff like gnome-screensaver and maybe a<br>
unity-sreensaver if that even exist).<br>
<br>
Correct me if I'm wrong, but the behavior is:<br>
<br>
- - someone calls dm-tool lock (is there a dbus way here?)<br></blockquote><div><br></div><div>dm-tool look just calls Lock() on /org/freedesktop/DisplayManager/Seatn (as got from $XDG_SEAT_PATH).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

- - lightdm reacts by switching vt and sends the dbus “lock” signal<br></blockquote><div><br></div><div>lightdm launches a greeter, which causes a VT switch* and the existing session to be locked via ConsoleKit / logind.<br>
<br></div><div>*when using traditional X and VT switching seats. When using Unity System Compositor (Mir) it triggers the compositor to switch active session.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

- - the running locker receive the lock signal and locks the screen<br></blockquote><div><br></div><div>Locker / screensaver / shell or whatever is listening on the ConsoleKit / logind dbus interface.<br></div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
My concern is that calling dm-tool lock when no locker is running<br>
(wether because there's no locker installed, because it has crashed or<br>
not started or whatever) means that the system will be left on an<br>
insecure state (unlocked), but at the lightdm prompt, so an user might<br>
think it's correctly locked.<br></blockquote><div><br></div><div>Correct - there's ultimately no way that LightDM can be sure the session is locked since it just tells ConsoleKit/logind and it has no idea if that has been successfully acted on. I don't know of a way around this in the current architecture, but in Ubuntu we're working towards having a system compositor that switches between sessions so it can enforce switching only when allowed.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
It's pretty easy to reproduce on my Debian box, you just need to call<br>
dm-tool lock with no light-locker running.<br>
<br>
One solution would be to make sure noone ever calls dm-tool lock, but<br>
then I'm a bit puzzled at what's the exact usefullness of this tool. I<br>
hoped to add it to xflock4 (the Xfce lock wrapper), but it looks like a<br>
pretty bad idea right now (because of the above concern).<br></blockquote><div><br></div><div>It's up to how you want to do screen locking. If your shell / session has suitable lock screen support and you're happy with it then you probably want to use that because you get tighter control.<br>
<br>If you want to simplify your lock screen and use the same GUI as the greeter then use dm-tool/LightDM to do the locking. Using LightDM has the advantage that a flaw in the greeter is unlikely to let you into a locked session (the screen locker crashing will), but a crash in the screen locker might leave the session unlocked and able to be gotten to using alt+ctrl+Fn to VT switch.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
In the end, there's a need for a way to the caller (of dm-tool) to be<br>
sure that it doesn't leave the system in an insecure state. And it has<br>
to work in a heterogen system, too. </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I'm not sure how much feedback lightdm gets from the various calls, but<br>
maybe dm-tool could return an error if the locking failed, and switch<br>
back to the original vt?<br></blockquote><div><br></div><div>It does handle the failure to launch a greeter but as stated it can't tell if the session has actually locked itself. <br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Does it need to send the lock signal *after* leaving the original vt,<br>
too?<br></blockquote><div><br></div><div>The problem with sending the lock signal before switching is you might see the lock for a split second before the switch occurs. And since we can never know if / when the locking occurs you might as well send it after.<br>
</div></div></div></div>