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=

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

관련 정보