Perl硬編碼密碼與使用
硬編碼密碼與使用cat
從文件中檢索
我使用 Zentyal(以前的 EBox)作為我的家庭網關/伺服器,以評估它是否可以在本地組織中使用。我想更改根 MySQL 密碼,我這樣做了,並錯誤地更改了 Zentyal
/var/lib/zentyal/conf
文件夾中的密碼以匹配它。所以我將 Zentyal 密碼改回原來的樣子,但問題是,當我使用它編輯該文件時,nano
它必須添加一個換行符或其他東西,因為現在檢索密碼的 Perl 腳本(用於cat
從文件)導致 MySQL 訪問被拒絕錯誤。然而,當我在 Perl db 連接函式中硬編碼密碼時,它就像一個魅力。我試圖
nano -L
編輯文件,以及echo >
將密碼輸出到文件,但都沒有運氣。當 Perl 腳本執行 acat
來獲取密碼時,導致問題的原因是什麼?
為什麼不直接使用 perl 的本地 i/o 功能來讀取文件?
open FH, "/path/to/password.txt"; chomp(my $passwd = <FH>);
這裡
chomp
丟棄字元串末尾的換行符。當 Perl 腳本執行 cat 獲取密碼時,導致問題的原因是什麼?
您是否嘗試過列印出您從文件中讀取的密碼?就像是:
print ":", $passwd, ":\n";
冒號在那裡,因此您可以發現任何無關的空格(換行符等)。您還可以使用
xxd
(如果vim
安裝在系統上,您將擁有)或od -a
查看文件中的所有字節。例如,給定一個包含“secret\n
”的文件,od -a
將顯示:$ od -a file 0000000 s e c r e t nl 0000007
我已經嘗試 nano -L 來編輯文件以及 echo > 來將密碼添加到文件中,
我不知道
nano
,但echo
會在其輸出的末尾添加一個換行符。如果你不想這樣:echo -n password > file
-n
抑制尾隨換行符。