lenny@icus.UUCP (Lenny Tropiano) (01/03/88)
What is the problem giving root (or any login for that matter) /bin/ksh for the default login shell and then using the "su <name> -c <cmd>" to execute a command? I keep getting: $ su root -c "rm xx" Password: Non-standard shell - denied Does the "-c" option only work with the Bourne shell (/bin/sh)? I would like root to have /bin/ksh. I have to cludge it up with leaving the default shell blank in /etc/passwd and then in the .profile put a: exec /bin/ksh This is annoying. -Lenny -- ============================ US MAIL: Lenny Tropiano, ICUS Computer Group IIIII CCC U U SSSS PO Box 1 I C C U U S Islip Terrace, New York 11752 I C U U SSS PHONE: (516) 968-8576 [H] (516) 582-5525 [W] I C C U U S AT&T MAIL: ...attmail!icus!lenny TELEX: 154232428 IIIII CCC UUU SSSS UUCP: ============================ ...{uunet!godfre, harvard!talcott}!\ ...{ihnp4, boulder, mtune, bc-cis, ptsfa, sbcs}! >icus!lenny "Usenet the final frontier" ...{cmcl2!phri, hoptoad}!dasys1!/
wjc@ho5cad.ATT.COM (01/04/88)
In article <200@icus.UUCP> lenny@icus.UUCP (Lenny Tropiano) writes: > [su with "-c" problem described] > Does the "-c" option only work with the Bourne shell (/bin/sh)? I would > like root to have /bin/ksh. I have to cludge it up with leaving the > default shell blank in /etc/passwd and then in the .profile put a: > > exec /bin/ksh > > This is annoying. I don't know why it's done that way, but it looks like the check for /bin/sh is coded into /bin/su. (From a look at the binary.) Another ploy for getting ksh for root is to simply link /bin/ksh on top of /bin/sh. I've been running this way for quite a while with no problems (3.5). I do recall some ancient problems with cron scripts breaking and log files growing forever in the 2.5/3.0 days, but something fixed that. Bill Carpenter (AT&T gateways)!ho5cad!wjc HO 1L-410, (201)949-8392
still@usceast.UUCP (Bert Still) (01/06/88)
In article <200@icus.UUCP> lenny@icus.UUCP (Lenny Tropiano) writes: >What is the problem giving root (or any login for that matter) /bin/ksh >for the default login shell and then using the "su <name> -c <cmd>" to >execute a command? I keep getting: > >$ su root -c "rm xx" >Password: >Non-standard shell - denied > > -Lenny Strange... I use csh (the Berkeley shell) for root on my 3B2/300, and I just tried the above (from inside csh under my ``ordinary'' users account) -- it works for me. I don't have access to ksh, so I can't try anything with it. I would be interested in which release of System V you're using. My version is release 2.0. bert -------------------------------------------------------------------------------- shar is actually an ancient term meaning "some assembly required" -------------------------------------------------------------------------------- CSNET: still@cs.scarolina.edu # US SNAIL: Bert Still # Dept of Mathematics BITNET: T410119@UNIVSCVM # University of South Carolina # Columbia, SC 29208 -------------------------------------------------------------------------------- UUCP: ...seismo!ncr-sd!ncrcae!usceast!still (BSD4.3) ...usceast!porthos!still (Ultrix1.1) ...usceast!porthos!hermes!still (SVr2) -------------------------------------------------------------------------------- Newsgroups: unix-pc.general,comp.sys.att,comp.unix.questions,comp.unix.wizards Subject: Re: Non-standard shell and su. Summary: Expires: References: <200@icus.UUCP> Sender: still@cs.scarolina.edu (Bert Still) Reply-To: still@usceast.UUCP (Bert Still) Followup-To: Distribution: Organization: University of South Carolina, Columbia Keywords: su, root, security, /bin/ksh In article <200@icus.UUCP> lenny@icus.UUCP (Lenny Tropiano) writes: >What is the problem giving root (or any login for that matter) /bin/ksh >for the default login shell and then using the "su <name> -c <cmd>" to >execute a command? I keep getting: > >$ su root -c "rm xx" >Password: >Non-standard shell - denied > > -Lenny Strange... I use csh (the Berkeley shell) for root on my 3B2/300, and I just tried the above (from inside csh under my ``ordinary'' users account) -- it works for me. I don't have access to ksh, so I can't try anything with it. I would be interested in which release of System V you're using. My version is release 2.0. bert -------------------------------------------------------------------------------- shar is actually an ancient term meaning "some assembly required" -------------------------------------------------------------------------------- CSNET: still@cs.scarolina.edu # US SNAIL: Bert Still # Dept of Mathematics BITNET: T410119@UNIVSCVM # University of South Carolina # Columbia, SC 29208 -------------------------------------------------------------------------------- UUCP: ...seismo!ncr-sd!ncrcae!usceast!still (BSD4.3) ...usceast!porthos!still (Ultrix1.1) ...usceast!porthos!hermes!still (SVr2) --------------------------------------------------------------------------------
rjd@occrsh.ATT.COM (01/06/88)
>Another ploy for getting ksh for root is to simply link /bin/ksh on >top of /bin/sh. I've been running this way for quite a while with no >problems (3.5). I do recall some ancient problems with cron scripts >breaking and log files growing forever in the 2.5/3.0 days, but >something fixed that. > > Bill Carpenter Some problems can occur if the stock Bourne shell is changed. I linked /bin/ksh to /bin/sh on a 3B2 model 310 running the stock AT&T System V factory load 2.0.5 (makes sense, as I am here at the factory). Actually I just copied over /bin/sh (and saved a copy of sh over in /usr). Well, suddenly all sorts of things quit working (a suspicion I had, which was the reason I saved a copy of sh). The most memorable was that at(1) bombed. When at(1) sets up the job file in /usr/spool/cron/atjobs, it saves the COMPLETE current enviroment of the user. Well, it just so happens that some variables were marked "readonly", most notably PPID. When the atjob was executed, it nonetheless tried to set PPID (or was it PWD?), notwithstanding its readonly status. At the step where it was trying to set the readonly variable, it bombed. .....So I moved the original Bourne shell back to /bin/sh.... Randy
davidsen@steinmetz.steinmetz.UUCP (William E. Davidsen Jr) (01/06/88)
In article <264@ho7cad.ATT.COM> wjc@ho5cad.ATT.COM writes: | In article <200@icus.UUCP> lenny@icus.UUCP (Lenny Tropiano) writes: | > [su with "-c" problem described] | Another ploy for getting ksh for root is to simply link /bin/ksh on | top of /bin/sh. I've been running this way for quite a while with no | problems (3.5). I do recall some ancient problems with cron scripts | breaking and log files growing forever in the 2.5/3.0 days, but | something fixed that. Any script which uses the caret (^) for pipes will break. I just posted a note in another group about this, maybe I should put it on the bugs group as well. A good example of this is "style" and "diction" from WWB. I use these a lot, so I found the problem very early on. -- bill davidsen (wedu@ge-crd.arpa) {uunet | philabs | seismo}!steinmetz!crdos1!davidsen "Stupidity, like virtue, is its own reward" -me
stpeters@dawn.steinmetz (Dick St.Peters) (01/07/88)
In article <264@ho7cad.ATT.COM> wjc@ho5cad.ATT.COM writes: >Another ploy for getting ksh for root is to simply link /bin/ksh on >top of /bin/sh. I've been running this way for quite a while with no >problems (3.5). This can be very dangerous if any of your scripts expect to use symlinks to reach remote parts of a filesystem: cd <symlink> cd .. and you're back where you began, which is not how other shells behave and is probably not what your script expected. -- Dick St.Peters GE Corporate R&D, Schenectady, NY stpeters@ge-crd.arpa uunet!steinmetz!stpeters
gwyn@brl-smoke.ARPA (Doug Gwyn ) (01/07/88)
In article <8389@steinmetz.steinmetz.UUCP> dawn!stpeters@steinmetz.UUCP (Dick St.Peters) writes: >This can be very dangerous if any of your scripts expect to use >symlinks to reach remote parts of a filesystem: > cd <symlink> > cd .. >and you're back where you began, which is not how other shells behave >and is probably not what your script expected. Lots of other shells behave this way; ours for example. I doubt that many scripts really would plan on the 4.3BSD /bin/sh behavior occurring in such a case. Far more likely, they're expecting the behavior of ksh or the BRL Bourne shell.
stpeters@dawn.steinmetz (Dick St.Peters) (01/08/88)
In article <6974@brl-smoke.ARPA> gwyn@brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>) writes: >>[quote of my warning about how ksh's cd behaves with symlinks] >Lots of other shells behave this way; ours for example. > >I doubt that many scripts really would plan on the 4.3BSD /bin/sh >behavior occurring in such a case. Far more likely, they're >expecting the behavior of ksh or the BRL Bourne shell. I beg to differ, but we'd have to count them all to prove who's right. Problems likely to be more common than the one I originally cited are that under ksh cd <symlink> ls ../foo always gives "../foo not found". Also, if [ -f ../foo ] always yields false. Both these results are as described even if both a real ../foo exist and a <back up the symlink>/foo exist. These are not unlikely things to find in scripts, and this behavior badly limits the usefulness of symlinks, which are extremely useful if your shell behaves. -- Dick St.Peters GE Corporate R&D, Schenectady, NY stpeters@ge-crd.arpa uunet!steinmetz!stpeters