Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Jan 2011 21:09:05 -0800
From:      Garrett Cooper <gcooper@FreeBSD.org>
To:        Craig Leres <leres@ee.lbl.gov>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>, Ed Schouten <ed@freebsd.org>
Subject:   Re: xterm -C and TIOCCONS vs. PRIV_TTY_CONSOLE
Message-ID:  <AANLkTi=gHW=ShE_p=LPj-k1FC1e2-SpAWxyAsD=2MF7o@mail.gmail.com>
In-Reply-To: <4D269B72.4040709@ee.lbl.gov>
References:  <4D268557.2090704@ee.lbl.gov> <AANLkTinWu9-ZP_D0ShfvAtDpbuRPWa81hLb3hw=OQoxX@mail.gmail.com> <4D268B98.3080906@ee.lbl.gov> <AANLkTinEG7SJ80Ljrecg%2Bq_TOGy8bicKVUPZRRpzieV%2B@mail.gmail.com> <4D269B72.4040709@ee.lbl.gov>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 6, 2011 at 8:49 PM, Craig Leres <leres@ee.lbl.gov> wrote:
> On 01/06/11 20:05, Garrett Cooper wrote:
>> Just to make sure we're both on the same page:
>>
>> $ grep xterm /etc/ttys
>> ttyv0 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv1 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv2 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv3 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv4 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv5 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv6 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv7 "/usr/libexec/getty Pc" =A0 =A0 =A0 =A0 xterm =A0 on =A0secure
>> ttyv8 "/usr/local/bin/xdm -nodaemon" =A0xterm =A0 off secure
>
> No, that's not what mine looks like. I changed it to match and rebooted
> but it doesn't help with the TIOCCONS issue.
>
> When I run xinit, it starts up the xterm -C which does a TIOCCONS. The
> 8.1 kernel checks for PRIV_TTY_CONSOLE which isn't set and denies the
> request:
>
> =A0 =A0 =A0 =A0case TIOCCONS:
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Set terminal as console TTY. */
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (*(int *)data) {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0error =3D priv_check(td, P=
RIV_TTY_CONSOLE);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (error)
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (er=
ror);
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/*
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 * XXX: constty should rea=
lly need to be locked!
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 * XXX: allow disconnected=
 constty's to be stolen!
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 */
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (constty =3D=3D tp)
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (0)=
;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (constty !=3D NULL)
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (EB=
USY);
>
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0tty_unlock(tp);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0constty_set(tp);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0tty_lock(tp);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} else if (constty =3D=3D tp) {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0constty_clear();
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0}
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (0);
>
>
> There's nothing I see in all of /usr/src that turns on PRIV_TTY_CONSOLE
> in any case. You could rewrite the above like this:
>
> =A0 =A0 =A0 =A0case TIOCCONS:
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Set terminal as console TTY. */
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (*(int *)data) {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (EPERM)
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} else if (constty =3D=3D tp) {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0constty_clear();
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0}
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (0);
>
> and it won't change any behavior.

    Ok -- figured I would ask about the obvious. I wish I could help
you further right now, but unfortunately I have a lot on my plate.
I've CCed ed@ and the list again so that someone else might be able to
chime in and help you further.
Cheers,
-Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=gHW=ShE_p=LPj-k1FC1e2-SpAWxyAsD=2MF7o>