From owner-freebsd-bugs@FreeBSD.ORG Wed Dec 23 20:30:02 2009 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0E335106568F for ; Wed, 23 Dec 2009 20:30:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id BDA7C8FC15 for ; Wed, 23 Dec 2009 20:30:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id nBNKU19b034509 for ; Wed, 23 Dec 2009 20:30:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id nBNKU1Yo034508; Wed, 23 Dec 2009 20:30:01 GMT (envelope-from gnats) Resent-Date: Wed, 23 Dec 2009 20:30:01 GMT Resent-Message-Id: <200912232030.nBNKU1Yo034508@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Dan Strick Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B7CF1065696 for ; Wed, 23 Dec 2009 20:29:38 +0000 (UTC) (envelope-from mla_strick@att.net) Received: from smtp125.sbc.mail.sp1.yahoo.com (smtp125.sbc.mail.sp1.yahoo.com [69.147.65.184]) by mx1.freebsd.org (Postfix) with SMTP id 40F668FC25 for ; Wed, 23 Dec 2009 20:29:38 +0000 (UTC) Received: (qmail 91106 invoked from network); 23 Dec 2009 20:02:57 -0000 Received: from adsl-69-228-80-86.dsl.pltn13.pacbell.net (mla_strick@69.228.80.86 with login) by smtp125.sbc.mail.sp1.yahoo.com with SMTP; 23 Dec 2009 12:02:57 -0800 PST Received: from mist.nodomain (localhost [127.0.0.1]) by mist.nodomain (8.14.3/8.14.3) with ESMTP id nBNK2vLZ010893; Wed, 23 Dec 2009 12:02:57 -0800 (PST) (envelope-from mla@mist.nodomain) Received: (from dan@localhost) by mist.nodomain (8.14.3/8.14.3/Submit) id nBNK2vkL010892; Wed, 23 Dec 2009 12:02:57 -0800 (PST) (envelope-from mla) Message-Id: <200912232002.nBNK2vkL010892@mist.nodomain> Date: Wed, 23 Dec 2009 12:02:57 -0800 (PST) From: Dan Strick To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: mla@mist.nodomain Subject: kern/141928: either xterm -C or ioctl TIOCCONS is broken X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Dan Strick List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Dec 2009 20:30:02 -0000 >Number: 141928 >Category: kern >Synopsis: either xterm -C or ioctl TIOCCONS is broken >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Dec 23 20:30:01 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Dan Strick >Release: FreeBSD 8.0-RELEASE i386 >Organization: none >Environment: System: FreeBSD mist 8.0-RELEASE FreeBSD 8.0-RELEASE #5: Mon Dec 7 18:59:52 PST 2009 root@mist:/usr/src/sys/i386/compile/MIST_DEBUG i386 xterm-247 xorg 7.4 >Description: The -C option to the xterm program is broken. It is supposed to redirect console messages to the xterm window by issuing the tty TIOCCONS ioctl for the xterm pty. This was working in FreeBSD 6.1 (for example), but since then the ioctl seems to have been modified to require root privilege and the xterm program has been reconfigured to drop root privilege almost immediately after starting. The xterm program requires that /dev/console belongs to the current effective user-id and this used to be all that the TIOCCONS ioctl required. (Otherwise why does /etc/fbtab exist?) >How-To-Repeat: Make some non-root user the owner of /dev/console and do "xterm -C" as that user. Then do something that generates console output (e.g. plug in a usb device). Note that the output went to the real console and not to the xterm window. >Fix: Either modify the TIOCCONS iotcl so that root privilege is not required if /dev/console belongs to the current effective user-id or rebuild xterm to not drop root privilege until it execs the user's shell within the xterm window. For example, as root: 1) cd /usr/ports/x11/xterm 2) Append "--enable-setuid" to the CONFIGURE_ARGS+= line in the Makefile. 3) make install clean Presumably someone thought they had good reasons for breaking xterm -C. There are security issues buried here and xterm is an extraordinarily messy program, but console output redirection is a rather important feature. Was it really necessary to castrate the TIOCCONS ioctl? Reenabling this ioctl seems to be the simplest and least risky way to fix xterm -C. Playing games with /etc/syslog.conf is ugly and clumsy and doing something like "tail -f /var/log/messages" in the xterm window is ugly and clumsy and unreliable. >Release-Note: >Audit-Trail: >Unformatted: