Userland problems from kern.pts.enable=1

Kris Kennaway kris at obsecurity.org
Mon Jun 18 17:05:21 UTC 2007


On Mon, Jun 18, 2007 at 01:50:46PM +0100, Tom Evans wrote:
> On Sun, 2007-06-17 at 17:39 -0400, Kris Kennaway wrote:
> > When the kern.pts.enable sysctl is set to '1', pseudo-ttys are created
> > with device name /dev/pts/${NUMBER}.  With some kernel fixes from kib
> > this appears to now be stable and the kernel side is ready for a
> > possible change of default.  However, the new device naming confuses
> > some userland utilities.  For example:
> > 
> > pointyhat# write simon
> > write: /dev/398: No such file or directory
> > 
> > simon was logged in on /dev/pts/398.
> > 
> > killall -t also fails to parse the new device format:
> > 
> > bento# ps -t pts/187
> >   PID  TT  STAT      TIME COMMAND
> > 67734 187  Ss     0:00.04 /bin/csh
> > 72599 187  R+     0:00.00 ps -t pts/187
> > bento# killall -t pts/187
> > killall: stat(/dev/ttypts/187): No such file or directory
> > 
> > It would also be useful if ps -t recognized a numeric argument as
> > magic and converted it to add the pts/.  It already appears to do the
> > converse when displaying the TTY, as you can see above.
> > 
> > There are probably other utilities also affected.
> > 
> > Kris
> > 
> 
> If no-one has already started working on these, I've had a look at a few
> of these utils and the changes look quite straightforward. I've been
> looking for something like this (simple enough for me to do, simple
> enough that a I can't ??$%^ it up too much) so I can contribute back to
> FreeBSD. 
> 
> So far, I'm looking at usr.bin/killall, bin/ps and usr.bin/write

Good news!  Thanks for your help.  It would be worthwhile also
auditing for other utilities that manipulate TTYs, for example others
I can think of off the top of my head are pgrep, watch, etc.

Kris


More information about the freebsd-current mailing list