perl_zen has asked for the wisdom of the Perl Monks concerning the following question:
I have the following perl issue:
I am running a script that is executed by my regular user. I need to “su” to other users throughout the execution of this script, which will require me to enter some information from the UNIX command line. When I “su”, I am prompted for the password, I enter the password, the password is accepted (& updates to the other user) but the scripts returns to the UNIX prompt rather than continuing with the remainder of the script.
Linux 4.1.2
Perl 5.8.8
What am I doing wrong here? Here is my code sample:
&Chg_User ($other_user); &Chg_Directory ($dir_location); … … … ## the sub_routines below sub Chg_User { my @chg_args = ("su”, “$_[0]"); my $chg_result = system(@chg_args); # updates to user but returns + to the UNIX command prompt print ("cOmMaNd LiNe \n"); #never gets here unless I type “exi +t” at the UNIX command prompt if ( $chg_result == -1) { print "wrong password: $!\n"; exit (-1); } } sub Chg_Directory { system (“cd”, “$_[0]”); }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: system commands and returns
by chromatic (Archbishop) on Nov 29, 2011 at 19:12 UTC | |
by Anonymous Monk on Nov 29, 2011 at 19:17 UTC | |
by chromatic (Archbishop) on Nov 29, 2011 at 19:35 UTC | |
by perl_zen (Initiate) on Nov 30, 2011 at 14:22 UTC | |
by chromatic (Archbishop) on Nov 30, 2011 at 16:33 UTC | |
Re: system commands and returns
by cdarke (Prior) on Nov 30, 2011 at 08:34 UTC | |
by perl_zen (Initiate) on Nov 30, 2011 at 14:55 UTC | |
by perl_zen (Initiate) on Nov 30, 2011 at 18:02 UTC | |
Re: system commands and returns
by JavaFan (Canon) on Nov 30, 2011 at 00:12 UTC | |
by perl_zen (Initiate) on Nov 30, 2011 at 14:40 UTC |