shell指令碼呼叫其他指令碼時敏感資訊的處理

2021-10-21 00:00:56 字數 821 閱讀 6264

我們通常使用python arg1 arg2這種形式傳參,這種形式在傳遞非敏感性息的時候沒有問題,但是在傳遞敏感性息時就有乙個致命的問題:可以通過ps命令列印後台資訊,進而獲取敏感性息。

那,這個問題怎麼解決?

答案是通過管道符!

例如: echo 123 | python

然後在python指令碼中通過sys.stdin.read()獲取引數,這樣ps就不會列印出來敏感性息了。

python的話,還可以通過os.envirou獲取執行環境變數的方式獲取到shell中定義的引數,也可以做到在ps中不列印。

但是這個時候就有乙個特別需要注意的地方,shell中的敏感性息在使用完後一定要通過unset釋放,不然會有洩露的風險。

如果是expect指令碼的話,在expect指令碼中通過$expect_out(1,string)獲取輸入的資訊,如果是多個引數,可以通過split切割,例如:

set passwordlist exp

ecto

ut(1

,str

ing)

setl

ines

[spl

it

"expect_out(1,string) set lines [split "

expect

o​ut

(1,s

trin

g)se

tlin

es[s

plit

"passwordlist" " "]

set root_pwd [lindex $lines 0]

set root2_pwd [lindex $lines 1]

shell指令碼中呼叫其他指令碼

目前來說有三種方法 1.指令碼絕對路徑 這個方式是最普通的,底層呼叫的是fork實現,執行的時候開乙個子shell執行呼叫的指令碼,子shell執行的時候,父shell還在 子shell執行完畢後返回父shell,子shell從父shell繼承環境變數,但是子shell中的環境變數不會帶回父shel...

呼叫其他python指令碼(指令碼目錄獲取)

目錄 1.問題描述 2.解決方法 2.1 獲取呼叫的指令碼路徑 2.2執行python指令碼 3.總結 python版本 python3.7 os平台 windows7 python 指令碼執行的時候去呼叫執行其他指令碼,使用getcwd 獲取指令碼路徑不對。指令碼timerexec.py 呼叫指令...

python呼叫shell指令碼時需要切換目錄

最近遇到了乙個問題,就是python 呼叫shell指令碼時,發現輸入輸出的檔案,總是和自己預想的有偏差,但是單獨在linux下執行命令的時候,卻沒有錯誤。後來發現是相對路徑的問題,因為執行python檔案的時候,會有乙個工作目錄,而執行shell指令碼的時候,又會有乙個工作目錄,這樣就很容易混淆。...