Security

ps 怎麼知道隱藏密碼?

  • May 13, 2014

見證:

$ ps f
 PID TTY      STAT   TIME COMMAND
31509 pts/3    Ss     0:01 -bash
27266 pts/3    S+     0:00  \_ mysql -uroot -p
25210 pts/10   Ss+    0:00 /bin/bash
24444 pts/4    Ss     0:00 -bash
29111 pts/4    S+     0:00  \_ tmux attach
4833 pts/5    Ss+    0:00 -bash
9046 pts/6    Ss     0:00 -bash
17749 pts/6    R+     0:00  \_ ps f
4748 pts/0    Ss     0:00 -bash
14635 pts/0    T      0:02  \_ mysql -uroot -px xxxxxxxxxxxxxxxx
16210 pts/0    S+     0:01  \_ mysql -uroot -px xxxxxxxxxxxxxxxx

ps 是如何知道隱藏mysql密碼的?我可以將其合併到我自己的腳本中以隱藏特定的 CLI 屬性嗎?

ps不隱藏密碼。像 mysql 這樣的應用程序會覆蓋他們得到的參數列表。請注意,有一個較短的時間範圍(可能會因係統負載高而延長),其中參數對其他應用程序可見,直到它們被覆蓋。向其他使用者隱藏該過程可能會有所幫助。一般來說,通過文件傳遞密碼比通過命令行傳遞密碼要好得多。

本文中,它描述了 C,如何做到這一點。以下範例隱藏/刪除所有命令行參數:

#include <string.h>

int main(int argc, char **argv)
{
   // process command line arguments....

   // hide command line arguments
   if (argc > 1) {
       char *arg_end;    
       arg_end = argv[argc-1] + strlen (argv[argc-1]);
       *arg_end = ' ';
   }

   // ...
}

另請查看https://stackoverflow.com/questions/724582/hide-arguments-from-ps>和<https://stackoverflow.com/questions/3830823/hiding-secret-from-command-line-parameter-on-unix .

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