我有两个perl脚本:
getPwd.pl - 返回密码的setuid perl脚本
sub getOraPwd { ... return getOraPwd; } getOraPwd();
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)};
答案 0 :(得分:0)
调用setuid Perl脚本与调用系统上的任何其他可执行文件没什么不同:
my $password = `getPwd.pl`;
但是,我建议您不要使用setuid Perl脚本。任何语言中的setuid可执行文件都有很多陷阱。此外,使用它们在Perl 5.10.1中已弃用,在5.12中已删除。更好的选择是在getPwd.pl
下运行sudo
。