0

私は2つのperlスクリプトを持っています:

  1. getPwd.pl-パスワードを返すsetuidperlスクリプト

    sub getOraPwd {... return getOraPwd; } getOraPwd();

  2. testDBConn.pl

testDBConn.plスクリプトでgetPwd.plを呼び出し、getPwdスクリプトの結果を$ password変数に割り当てて、データベースに接続したいと思います。getPwd.plスクリプトはsetuidであるため、testDBConn.plがgetPwd.plを実行するように設定されていることに注意してください。

例えば。

$username="blah";
$password=result from getPwd.pl
$dsn=qq{...};
$dbh=DBI->connect($dsn, $username, $password)};
4

1 に答える 1

0

setuid Perl スクリプトを呼び出すことは、システム上の他の実行可能ファイルを呼び出すことと同じです。

my $password = `getPwd.pl`;

ただし、setuid Perl スクリプトは使用しないことをお勧めします。どの言語でも setuid 実行可能ファイルには多くの落とし穴があります。さらに、これらの使用は Perl 5.10.1 で廃止され、5.12 で削除されました。より良い代替手段は、getPwd.plの下で実行することsudoです。

于 2011-11-18T17:11:33.727 に答える