簡體   English   中英

保護作為環境變量傳遞的用戶名和密碼

[英]Securing username and password passed as Environment variable

從現有進程運行 bash 腳本時,用戶名和密碼以純文本形式作為環境變量傳遞。 使用以下命令。

sudo -u someuser USERNAME=abc PASSWORD=xyz /path/to/script/bashscript argument1 argument2

以上 bash 腳本是帶有用戶名和密碼的用戶可配置腳本。 我在上面面臨的挑戰是,正在記錄環境變量。 就像我們不想要的 auth.log 一樣。

我正在尋找實現以下目標之一的方法:

  1. 為了防止它記錄(比如進入 auth.log)。
  2. 在退出進程(c 程序)中加密用戶名和密碼並作為環境變量傳遞,並有一些方法可以在 bash 腳本中對其進行解密。

我試着為此尋找解決方案。 沒有找到適合我的用例的任何東西。 有人可以幫我嗎? 我也想知道任何其他使系統更安全的方法。 提前致謝。

這個問題有點跑題,不過我還是來答一下。

IMO,正確的方法是完全擺脫使用普通密碼。 我很確定可能有多種方法可以實現這一點,但這些是現在突然出現在我腦海中的選項:

  • 配置sudoers

    使用以下內容創建/etc/sudoers.d/user_a

     user_a ALL=(user_b:user_b) NOPASSWD:ALL

    然后每當user_a執行sudo -u user_b密碼時就不需要了。

  • 另一種方法是使用 SSH 密鑰,然后通過以下方式在本地運行腳本:

     ssh someuser@localhost "/path/to/script arg1 arg2"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM