在perl脚本中执行setuid perl脚本

时间:2011-11-18 16:31:01

标签: perl setuid

我有两个perl脚本:

  1. getPwd.pl - 返回密码的setuid perl脚本

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

  2. testDBConn.pl

  3. 我想在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)};
    

1 个答案:

答案 0 :(得分:0)

调用setuid Perl脚本与调用系统上的任何其他可执行文件没什么不同:

my $password = `getPwd.pl`;

但是,我建议您不要使用setuid Perl脚本。任何语言中的setuid可执行文件都有很多陷阱。此外,使用它们在Perl 5.10.1中已弃用,在5.12中已删除。更好的选择是在getPwd.pl下运行sudo