~/.bash_history를 "실시간"으로 편집하는 것이 안전한가요?

~/.bash_history를 "실시간"으로 편집하는 것이 안전한가요?

bash사용자의 명령줄 기록을 일반 텍스트 파일에 저장"~/.bash_history".

터미널을 사용하는 사용자가 한 명뿐이라고 가정할 때 해당 터미널을 열면 나쁜 부작용이 있습니까?"~/.bash_history"터미널 기반 텍스트 편집기에서 (또는 sed,외.) bash해당 사용자의 인스턴스가 실행되는 동안 저장하시겠습니까?

답변1

단일 단말기이고 한 명의 사용자만 사용하는 경우,아니요, 문제 없습니다.

Bash 기록을 로그로 사용할 수 있지만 사용자에게만 해당되므로 보안 검사에 안전하지 않습니다. 보다 안전한 로그를 원할 경우 rsyslog를 구성하고 로그를 복제 및 로그를 사용하여 다른 서버에 저장하는 것을 고려하십시오. 파티션에서 회전합니다.

예를 들어 특정 사용자로 로그인하여 일부 명령을 실행하고 kill -9 $$를 실행하면 해당 로그가 bash 기록에 등록되지 않은 것을 볼 수 있습니다.

rsyslogd를 구성하기 위해 수행하는 기본 작업은 다음과 같습니다(예: debian에서).

cat >/etc/rsyslog.d/bash.conf
local6.*    /var/log/commands.log
[CTRL+D for save the file)

그 다음에,

editor /etc/bash.bashrc

내부(첫 번째 줄 이후)

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$SSH_CLIENT $(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
readonly PROMPT_COMMAND

답변2

Bash 기록 파일은 사용자 계정에서 처리된 기록 명령 로그를 보관하는 단순한 텍스트 파일입니다.

어떤 이유로든 파일을 처리하는 스크립트가 없으면 아무런 영향도 미치지 않습니다.

예를 들어 방금 bash 기록을 삭제하고 터미널에서 로그아웃했다가 다시 로그인했습니다. Bash는 새로운 기록 파일을 생성합니다.

팁: 명령이 기록에 기록되지 않도록 하려면 명령 앞에 공백을 추가하십시오.

관련 정보