From: Ray Strode Date: Tue, 22 Apr 2014 17:27:58 +0000 (-0400) Subject: login: give session ownership of VT X-Git-Tag: v213~339 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d6176c6c97bf0614c2e7caaf2156bf813b39337a;p=platform%2Fupstream%2Fsystemd.git login: give session ownership of VT The tty associated with a VT should be owned by the owner of the session running on the VT. This is important for supporting a socket activated X server, since the X server will open the tty itself. This commit makes sure to chown the tty any time a session is created and and chown it back to root any time the session is removed. This behavior is copied from /bin/login. --- diff --git a/src/login/logind-session.c b/src/login/logind-session.c index b4fd349..83c0ffa 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -972,6 +972,10 @@ void session_mute_vt(Session *s) { if (vt < 0) return; + r = fchown(vt, s->user->uid, -1); + if (r < 0) + goto error; + r = ioctl(vt, KDSKBMODE, K_OFF); if (r < 0) goto error; @@ -1026,6 +1030,8 @@ void session_restore_vt(Session *s) { mode.mode = VT_AUTO; ioctl(vt, VT_SETMODE, &mode); + fchown(vt, 0, -1); + s->vtfd = safe_close(s->vtfd); }