실수로 암호를 bash 명령 줄에 입력하여 Last login: ...
줄을 잘못 입력 했습니다 Wrong password
(서둘 렀습니다). 추적을 어떻게 처리합니까?
내가 한 것은 .bash_history
문제를 일으키는 행 을 편집 하고 삭제하는 것입니다 (암호를 파일에 표시하기 위해 한 번 다시 로그인해야 삭제 할 수 있으므로 다시 로그인하면 UPARROW 키 아래에서 사용 가능한 기록에서 사라집니다).
명령 기록을 저장할 수있는 다른 장소가 있습니까? 시스템은 CentOS 6.5입니다.
답변
bash
전체 기록을 지우는 대신의 기록 에서 문제가되는 행만 제거 할 수 있습니다 . -d
플래그가 있는 행을 제거한 다음 플래그를 사용하여 새 히스토리를 저장 (쓰기)하십시오 -w
.
$ history
351 ssh me@site.com
352 my_password
$ history -d 352
$ history -w
답변
여기에는 두 부분이 있습니다.
bash
~/.bash_history
기본적으로 세션이 끝날 때 기록되는 파일에 기록을 저장합니다.- 그
history
기억에 유지
안전을 위해 세션에서 삭제해야합니다.
history -c
필요에 따라 히스토리 파일을 자릅니다.
> ~/.bash_history
비밀번호를 입력 한 세션이 여전히 열려있는 경우 추적 을 처리하는 다른 방법 은 세션이 종료 될 때 HISTFILE
히스토리가 기록되지 않도록 변수를 널 디바이스 로 설정하는 것입니다 ~/.bash_history
.
export HISTFILE=/dev/null
답변
bash (적어도 내가 알고있는 모든 기록 및 현재 버전)는 종료 할 때까지 기록을 자동으로 저장하지 않기 때문에 절대 저장되지 않도록 명령을 입력 할 때 일반적으로 적용 가능한 전략은 즉시 입력하는 것입니다.
kill -9 $$
이렇게하면을 (를) SIGKILL
붙잡을 수없는 셸이 종료되므로 셸은 종료시 아무것도 저장할 수 없습니다.
대부분의 다른 접근 방식은 사실 이후 (즉, 데이터가 이미 디스크에 닿은 후) 스크러빙을 포함하며, 특히 시스템에서 btrfs 또는 이와 유사한 것을 사용하는 경우 오류 가능성이 더 높습니다 (사본 누락).
답변
실수로 기록에 저장하지 않으려는 것을 입력 한 후 다음을 입력 할 수 있습니다. unset HISTFILE
Bash는 로그 오프 할 때 히스토리를 저장할 위치를 알지 못하므로 효과적으로 전체 세션에 대한 히스토리 로깅을 비활성화합니다.
답변
내가 가장 좋아하는 요령은 위쪽 화살표, 명령에 대한 백 스페이스를 누르고, 무언가를 입력하고 (필요하지 않을 수도 있음) 아래쪽 화살표를 누르고, “ls”를 입력하고 Enter 키를 누르는 것입니다. 정말 하키 느낌이지만 실제로 작동합니다. 내 기록에서 잘못된 명령을 편집 한 후 ctrl-c를 쳐서 편집을 중단하지 않고 망쳐 놓은 후 화가 나면 이것을 발견했습니다. bash가 개정주의 이력을 지원한다고 생각합니다. 😉
$ passw0rd
$ <up arrow><backspace x8>cd<down arrow>echo hi
$ history|tail -3
다음과 같습니다.
$ passw0rd
passw0rd: command not found
$ echo hi
hi
$ history|tail -3
2445* cd
2446 echo hi
2447 history|tail -3
$
답변
다른 답변 외에도 비밀번호가 터미널 스크롤 버퍼 (표시 된 텍스트의 기록)에서 발견되고 터미널 에뮬레이터가 저장 한 경우 하드 디스크에서 더 많은 문제가 발생할 수 있습니다 디스크에 기록. 이것은 KDE konsole에서 발생합니다. 히스토리 크기가 “무제한 스크롤 백”으로 설정되어 출력을 버리지 않습니다.
답변
을 사용 $<space> command
하면 명령이 기록에 추가되지 않고 때로는 유용합니다
$ history | grep mywierdgrep
$ history | grep mywierdgrep
2005 history | grep mywierdgrep