[systemd-devel] [PATCH 1/3] logind: session: don't set /dev/ttyX owner to root on restore_vt

Olivier Brunel jjk at jjacky.com
Mon Aug 11 08:05:05 PDT 2014


On 08/11/14 16:54, Lennart Poettering wrote:
> On Mon, 11.08.14 16:39, Olivier Brunel (jjk at jjacky.com) wrote:
> 
>>
>> On 08/11/14 16:25, Lennart Poettering wrote:
>>> On Fri, 08.08.14 20:45, Olivier Brunel (jjk at jjacky.com) wrote:
>>>
>>>> In session_prepare_vt() we set owner of /dev/ttyX to the user, as that is
>>>> needed for things to work. However, we shouldn't "reset" it to root on
>>>> session_restore_vt() since it could have in fact already been set to
>>>> the user.
>>>
>>> I don't follow here, can't parse this. Could you please elaborate? 
>>
>> I meant, before the call to session_prepare_vt() the owner of /dev/ttyX
>> might not be root, but already set to the user. In which case setting it
>> "back" to root might not be expected/best.
> 
> But that sounds more as if session_restore_vt() should not be used as-is
> as cleanup path for session_prepare_vt(), no?
> 
>> E.g. if a log in on tty3 right now, /dev/tty3 will be owned by my user,
>> then if a process try a TakeControl() and it failed (or after it's done)
>> the ownership would be set to root, even though it wasn't actually root
>> to begin with.
> 
> Isn't this very theoretic? I mean, when does TakeControl() actually
> really fail for you IRL?

Right, this was noticed when trying to start a second rootless X, since
with systemd-215 things currently fail, and the ownership of /dev/ttyX
would then be switched/changed to root.

session_prepare_vt() could also check the owner first, and note what to
reset to on session_restore_vt(), to effectively restore things as they
were.


> 
> Lennart
> 



More information about the systemd-devel mailing list