Linux 서버의 다른 사용자로부터 명령 기록 숨기기

Linux 서버의 다른 사용자로부터 명령 기록 숨기기

Linux(Ubuntu) 서버에서 ssh를 통해 로그인했을 때 서버에서 다른 사용자가 실행한 모든 bash 명령이 명령 기록에 저장되는 것을 확인했습니다. 서버의 다른 사용자가 명령줄에 입력하는 명령을 숨길 수 있는 방법이 있습니까?

답변1

명령 기록을 숨기는 방법에는 여러 가지가 있지만 기록을 완전히 끄는 것은 매우 유용하므로 좋은 생각이 아닙니다. 일시적으로 끄는 세 가지 좋은 방법은 다음과 같습니다.

  1. 가장 빠른 솔루션: 유형unset HISTFILE

    이렇게 하면 현재 로그인 세션에서 실행되는 모든 명령이 로그아웃할 때 .bash_history 파일에 저장되지 않습니다. 다음에 로그인할 때 HISTFILE이 재설정되므로 기록은 평소대로 저장됩니다. 또한 이렇게 하면 제거됩니다.모두unset HISTFILE을 입력하기 전에 실행되는 명령을 포함하여 세션의 명령이 원하는 것이 아닐 수도 있습니다. 또 다른 단점은 로그아웃할 때까지 올바르게 수행했는지 확신할 수 없다는 것입니다. 왜냐하면 bash에서는 여전히 위쪽 화살표를 사용하여 이전 명령을 볼 수 있기 때문입니다.

  2. 최고의 솔루션: 명령 앞에 공백을 입력하세요.

    한번 시도해보고 위쪽 화살표를 클릭하여 기록에 추가되었는지 확인하세요. 일부 웹사이트에서는 이러한 명령이 저장되지 않도록 설정했습니다. 작동하지 않으면 해당 줄을 export HISTCONTROL=ignoreboth.bashrc 파일에 추가하세요. 나중에 로그인하면 공백으로 시작하는 명령은 즉시 잊혀집니다.

  3. 기억하기 가장 쉬운: 유형sh

    그러면 원래 Bourne 쉘을 사용하여 서브쉘이 시작됩니다. 거기에 작성된 명령은 (당신이 전까지 exit) 기록에 저장되지 않습니다. 기록 파일을 보는 사람은 누구나 sh를 실행했다는 사실을 알 수 있지만(의심스럽습니다), 무엇을 실행했는지는 알 수 없습니다.

이를 수행하는 다른 방법이 많이 있습니다. 기억하지 말아야 할 명령을 bash에 알려줄 수도 있습니다(HISTIGNORE). 다양한 가능성을 보려면 bash(1) 매뉴얼 페이지를 참조하고 HIST를 검색하십시오.

답변2

셸 세션의 명령줄 기록이 bash이 파일에 저장됩니다 ~/.bash_history. 파일이 없으면 다른 사용자는 파일을 생성할 때 읽기 권한을 가질 수 없습니다.

bash환경 변수를 설정하여 이 파일에 저장되는 명령 수를 변경할 수 있습니다 HISTFILESIZE. 0으로 설정하면 기록 파일이 0 크기로 잘립니다. 기본값은 500입니다. 변수를 설정 해제 HISTFILE( unset HISTFILE)하면 명령이 기록 파일에 저장되지 않습니다.

그러나 귀하가 설명하는(설명에서) 서버의 현재 설정은 완전히 잘못되었습니다.

root여러 사용자가 로그인하여 계정에서 대화형 셸을 사용하도록 허용할 이유가 없습니다 . sudo대신 여러 개의 개인 사용자 계정을 사용하는 것을 고려해 보십시오 !

root대화형 세션과 사용 중인 명령 기록은 sudo매우 중요합니다.특히root시스템에 액세스할 수 있는 사용자가 여러 명인 경우 .

당신의 팀은 알고 싶어할 것입니다정확히root잘못된 구성이나 기타 사고를 수행한 후에 이 사용자가 수행한 작업을 조사하고 수정하는 것이 가장 좋습니다. 명령줄 기록을 사용하면 문제의 원인을 더 쉽게 찾을 수 있습니다. 이러한 이유로 sudo유틸리티는 타임스탬프, 전체 명령줄 및 실행 사용자의 사용자 이름과 함께 syslog 도구에 대한 각 호출도 기록합니다 sudo.

편집하다: 최근 직장에서 Linux 시스템 클러스터의 광섬유 네트워크에 문제가 발생하기 시작했습니다. sudo액세스 권한이 있는 어리석은 사용자가 실수로 패키지 업그레이드를 수행했을 때 일부 드라이버 또는 기타 드라이버가 잘못된 버전으로 교체된 것으로 나타났습니다 . 우리는 sudo시스템 로그와 그 안에 있는 타임스탬프를 보고 이를 찾을 수 있었습니다 . 알고 보니 이 "어리석은 사용자"는 다름 아닌 바로 나였습니다!

답변3

로그인한 후 다음 명령을 실행하십시오.

HISTFILE=

이렇게 하면 후속 명령이 기록 파일에 기록되지 않습니다.

관련 정보