perl将隐藏凭证文件作为参数传递

时间:2013-08-21 21:12:49

标签: perl scripting

我有perl脚本,我正在努力。在代码中,我实际上是打开一个文件句柄来创建一个参数文件,如下所示:

my $date_string= strftime '%Y%m%d',gmtime;
my $par_file = "/tmp/$schema-$date_string.par";
open my $par_fh, '>', $par_file or die "$par_file: opening for write: $!";
print $par_fh << PAR;
USERID=MYUSER/MYPA55W0RD
DIRECTORY=DMPDIR
SCHEMA=$schema
DUMPFILE=$sechema-$date_string.dmp
CONTENT=METADATA_ONLY
LOGFILE=$schema-$date_string.log
PAR
close $par_fh
    or die "$par_file: closing after write: $!";

我需要参数化USERID=MYUSER/MYPA55W0RD并将其隐藏在隐藏文件或其他内容中。有人可以告诉我如何设置它吗?

1 个答案:

答案 0 :(得分:1)

将您的代码更改为以下内容:

my $date_string= strftime '%Y%m%d',gmtime;
my $par_file = "/tmp/$schema-$date_string.par";
my $creds = `cat .secretfile`;
chomp($creds);

open my $par_fh, '>', $par_file or die "$par_file: opening for write: $!";
print $par_fh << PAR;
USERID=$creds
DIRECTORY=DMPDIR
SCHEMA=$schema
DUMPFILE=$schema-$date_string.dmp
CONTENT=METADATA_ONLY
LOGFILE=$schema-$date_string.log
PAR
close $par_fh
    or die "$par_file: closing after write: $!";

其中.secretfile中包含类似'scott / tiger'的字符串。请注意,这不是很强大,所以请随时加强它以符合您的政策。例如,确保文件存在且模式不大于0600,以减少被篡改的可能性。