0

我有我正在处理的 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并将其隐藏在隐藏文件或其他东西中。有人可以告诉我如何设置吗?

4

1 回答 1

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,以减少被篡改的机会。

于 2013-08-21T22:31:15.783 回答