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 に答える