su password prompt ti stdout instead of /dev/tty

Cyrille Lefevre cyrille.lefevre-lists at laposte.net
Wed Jan 27 21:49:12 UTC 2010


jhell a écrit :
> On Sun, 24 Jan 2010 21:57, glen.j.barber@ wrote:
>>
>> Cyrille Lefevre wrote:
>>>
>>> su password prompt is displayed to *stdout* instead of */dev/tty*.
>>>
>>> # su user
>>> $ su root -c date > /tmp/date 2>&1
>>> (nothing displayed)
>>> $ cat /tmp/date
>>> Password:su: Sorry
>>> $ uname -a
>>> FreeBSD freebsd8.my.domain 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov
>>> 21 15:48:17 UTC 2009
>>> root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
>>>
>>> I suppose this is a getpass() problem ?
>>>
> 
> This is intended operation as su(1) may not always be affiliated with a 
> TTY. This leaves it open for a script to chat with much like what samba 
> does with its passwd chat mechanism.

just to feed the debate :

aix 5.2 : prompt to tty
hp-ux : prompt to stderr
netbsd : prompt to tty
solaris 9 : prompt to stderr
solaris 10 : prompt to tty
openbsd : prompt to tty
ubuntu : prompt to stderr

freebsd is the only one which prompt to stdout !
IMHO, it should at least prompt to stderr if not tty...
and report errors to stderr as usually.

CC -standard

Regards,

Cyrille Lefevre
-- 
mailto:Cyrille.Lefevre-lists at laposte.net





More information about the freebsd-stable mailing list