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]”);
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|