누군가 명령 행에서 비밀번호를 사용하지 않아야하는 이유는 무엇입니까?


33

사람들이 명령 행에 비밀번호를 쓰는 것을 두려워하는 이유는 무엇입니까?

히스토리 파일은에 위치 ~/.history하므로 명령 (및 루트)을 실행 한 사용자 만 사용할 수 있습니다.


2
히스토리 파일에 일부 명령을 기록하지 않아도됩니다. 역사에서 명령을 지키지
Luc M

5
수다! 당신이 당신의 암호를 정의하더라도 export mypass=secret및 사용 a_command --password=$mypass, 당신은 볼 secretps테이블.
Luc M

답변:


51

명령 행은 히스토리에서만 사용할 수 없습니다. 예를 들어 파일 시스템 의 출력 ps -ocmd또는 /proc파일 시스템을 통해 사용할 수도 있습니다 . ( /proc/<pid>/cmdline)를 ps읽는 곳 입니다.

또한 사용자의 홈 디렉토리는 종종 세계 또는 그룹에서 읽을 수 있습니다. 히스토리 파일은 사용자가 읽을 수만있게 만들 수 있지만 삭제 및 재생 후에는 유효하지 않을 수 있습니다.


17

커맨드 라인의 암호는 나쁜 생각입니다. 다른 답변에서 논의 된 방법 외에도 :

  • / proc
  • 프로세스 목록 ( ps)
  • 사용자 기록 파일

다음 위치에도 사용자 명령이 표시 될 수 있습니다.

  • 감사 로그
  • / var / log / *

또한 사용자가 시스템간에 로그인 할 때 사용자의 명령이 표시 될 수도 있으므로 일반적으로 나쁜 습관이므로 항상 피해야합니다.


3
/ var / log 참조의 경우 +1-종종 중요한 시스템 로그를 다른 곳으로 보낼 수 있으며 반드시 동일한 시스템에 머 무르지 않아도됩니다. 따라서 암호가 실수로 네트워크를 통해 일반 텍스트 형식으로 전송 될 수도 있습니다.
Mark Glossop 2018 년

11

문제는 명령이 실행되는 동안 (대부분의 경우, 심지어 루트 사용자의 경우에도) 매개 변수의 가시성입니다. 의 출력을 참조하십시오

ps -eo pid,user,args
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.