시크릿 bash 세션을 여는 방법은 무엇입니까?

시크릿 bash 세션을 여는 방법은 무엇입니까?

에서 시크릿 세션을 열 수 있습니까 bash?

예를 들어 명령에 비밀번호를 입력해야 하는데 bash이를 기록에 추가하고 싶지 않은 경우입니다.

답변1

bash로깅 명령을 중지 하려면 HISTFILE변수 설정을 해제하면 됩니다.

HISTFILE=

모든 추가 명령은 더 이상 기록되지 않습니다 .bash_history.

반면에 실제로 명령에 대한 인수로 암호를 제공하면 이미 잘못된 작업을 수행하고 있는 것입니다. .bash_history전 세계에서 읽을 수 없으므로 이 경우 가장 큰 위협은 아닙니다.

ps/proc큰 문제 입니다 . 시스템의 모든 사용자는 현재 실행 중인 명령을 볼 수 있습니다.그리고 그들의 모든 주장. 따라서 암호를 명령줄 인수로 전달하는 것은본질적으로 안전하지 않음. 비밀번호를 안전하게 제공하려면 환경 변수 또는 구성 파일(600을 chmodded)을 사용하십시오.

답변2

HISTCONTROL=ignorespace

이 옵션이 설정되지 않은 경우 bash필요한 것일 수 있습니다. 모든 기록을 비활성화하는 것보다 덜 쇠약해집니다. 이 설정을 사용하면 공백 문자로 시작하는 명령줄은 기록 목록에 저장되지 않습니다.

다음 관련 링크에서:

Bash에 HISTControl=ignorespace 옵션이 있는 이유는 무엇입니까?

bash에서 공백으로 시작하는 명령을 저장하지 않는 이유는 무엇입니까?

답변3

일시적으로 기록을 비활성화할 수 있습니다.set +o history

set +o history
...
set -o history

기록을 비활성화하는 것과 설정을 해제하는 것에는 차이가 있습니다 HISTFILE.

HISTFILE=
date
ls
HISTFILE=~/.bash_history
history

출력은 다음과 같습니다.

84  HISTFILE=
85  date
87  ls
88  HISTFILE=~/.bash_history
89  history

즉, 모든 명령이 기록 목록에 저장됩니다. exit저장하려면 입력하세요 .
하지만

set +o history
date
ls
set -o history
history

출력은 다음과 같습니다.

115  set +o history
116  history

일반화하다:
set +o history장시간 세션에 사용됩니다.
HISTCONTROL그리고 <space>command다른 때에는.

관련 정보