Command-Line

w 命令對使用者安全嗎?

  • October 6, 2014

一些應用程序允許將密碼作為參數傳遞。例如:

mysql --user=user_name --password=your_password db_name

安全嗎?除了鍵入的密碼會保存在 bash 歷史記錄中這一事實外,有人可以w在適當的時候鍵入命令,並會看到程序的完整命令行(包括密碼)。

令我驚訝的是,每個使用者都可以看到我目前正在執行的命令。

系統中每個程序的命令行參數都被認為是“公共的”。不僅是w命令,而且ps還有top許多其他命令理所當然地訪問該資訊。實際上,獲取該資訊不需要特殊特權。在 Linux 上,您可以通過閱讀/proc/<pid>/cmdline.

這不是wor topor ps(or cat) 的缺陷或不安全行為。相反,責任在於永遠不要在多使用者系統上的命令行上傳遞敏感資訊。

大多數能夠在命令行上接受密碼的實用程序都表明不建議這樣做。例如,來自mysql的手冊頁:

在命令行上指定密碼應該被認為是不安全的。請參閱第 5.3.2.2 節“密碼安全的最終使用者指南”。您可以使用選項文件來避免在命令行上提供密碼。

順便說一句,在環境變數中傳遞密碼或敏感數據並不那麼明顯不安全,但實際上在大多數係統上也是不安全的。

引用自:https://unix.stackexchange.com/questions/159454