Subject: Re: bin/17340: the meaning of the "-c" option to /usr/bin/su is overloaded
To: David Laight <david@l8s.co.uk>
From: Greg A. Woods <woods@weird.com>
List: netbsd-bugs
Date: 06/21/2002 18:22:04
[ On Friday, June 21, 2002 at 21:11:25 (+0100), David Laight wrote: ]
> Subject: Re: bin/17340: the meaning of the "-c" option to /usr/bin/su is overloaded
>
> > > The command 'su -c "random command"' no longer functions,
> > > though 'su root -c "random command"' does act as before.
>
> If it's not a silly question, when, and of what version did this
> 'work'?
That's a good question -- I don't know that it ever did in *BSD, at
least not after the introduction of getopt() to su.c.
> > > A likely mistake was the use of the "-c" argument to reflect
> > > changes in login class along with its traditional usage as the
> > > prefix specifier to the command to be executed..
> >
> > (I think the cause was probably a more careful options parser in getopt(3))
>
> Don't think so - I've just reinstated libc.so.12.83, makes no difference.
That's good to hear!
> > I think the mistake is to assume the "su -c command" form will work.
>
> I can't see a version of su where it would. getopts() returning
> '?' has always made netbsd's su exit.
>
> OTOH a SYSV/Solaris su might behave differently.
When the '-' option was introduced (before System III), it was
implemented with a silly non-getopt() hack. It was still that way in
SysVr3.2. I don't know what happened when '-' was deprecated and '-l'
was introduced to replace it in order to bring 'su' closer to POSIX
compatability.
--
Greg A. Woods
+1 416 218-0098; <gwoods@acm.org>; <g.a.woods@ieee.org>; <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>