ps 숨겨진 비밀번호를 어떻게 알 수 있나요?

ps 숨겨진 비밀번호를 어떻게 알 수 있나요?

증인:

$ 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 속성을 숨기기 위해 이를 내 스크립트에 통합할 수 있습니까?

답변1

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.

답변2

이것mysql프로그램은 명령줄의 비밀번호를 x다음 으로 대체합니다.이 코드 줄:

while (*argument) *argument++= 'x';     // Destroy argument

관련 정보