본문 바로가기
놀기/Linux

Ubuntu 접속 기록 삭제, 명령어 히스토리 삭제하기

by Hi~ 2021. 10. 27.

해커가 아니더라도 ssh 접속 기록을 가끔 지우고 싶을 때가 있다.

 

나의 IP가 노출된다거나

 

나의 사용 기록이 노출된다거나

 

나가 마지막으로 언제 들어왔는지 등등등...

 

그 외 다양한 기록이 남겠지만 일단 이것만이라도 지워보자.

 

 

목차

     

     

    언제 들어왔는지 지우기 (/var/log/wtmp, /var/log/lastlog) 


    /var/log/wtmp 파일이 없으면 last 명령어의 결과가 나오지 않는다. 아래와 같이 해보자.

    dev@dev:~$ sudo mv /var/log/wtmp /var/log/wtmp.old
    [sudo] password for dev: 
    dev@dev:~$ last
    last: cannot open /var/log/wtmp: No such file or directory
    dev@dev:~$

     

    그런데 아무 것도 나오지 않으면 안 되니 touch 명령어로 파일만 만들어 보자.

    dev@dev:~$ sudo touch /var/log/wtmp
    dev@dev:~$ last
    
    wtmp begins Wed Oct 27 15:16:20 2021
    dev@dev:~$ 
    
    ------- SSH 재접속 후 ---------
    
    dev@dev:~$ last
    dev      pts/0        192.168.0.10     Wed Oct 27 15:17   still logged in
    
    wtmp begins Wed Oct 27 15:16:58 2021

     

    SSH 재접속 후, 당연히 다시 나오겠지만, 로그인 전까지는 기록이 없게 된다.

     

    /var/log/lastlog 도 좀 손봐야 한다.

    위와 같이 해도 접속 시, 아래와 같이 기록이 나온다.

     

     

    아래와 같이 /var/log/lastlog 파일이 없으면 lastlog 명령어의 결과가 출력되지 않는다.

    dev@dev:~$ sudo mv /var/log/lastlog /var/log/lastlog.old
    [sudo] password for dev: 
    Sorry, try again.
    [sudo] password for dev: 
    dev@dev:~$ lastlog
    /var/log/lastlog: No such file or directory

     

    역시나 아무 것도 안 나오면 안 되니, touch 명령으로 파일은 만들어 놓자.

    dev@dev:~$ sudo touch /var/log/lastlog
    dev@dev:~$ lastlog | grep dev
    dev                                        **Never logged in**
    dev@dev:~$

     

    흠.... 나의 로그인 기록은 없다. 물론, 다시 접속하면 결과는 나온다.

    dev@dev:~$ lastlog | grep dev
    dev              pts/0    192.168.0.10     수 10월 27 15:27:18 +0900 2021
    dev@dev:~$

     

     

     

    명령어 히스토리 (history) 지우기 


    history는 너무 좋은 기능이면서 가끔은 숨기고 싶은 기능이다. 흠.. 조금 전에 했던 것이 모두 나오네요.

     

     

    history 명령어의 옵션을 보면 -c 옵션이 있다.

    dev@dev:~$ history --help
    history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
        Display or manipulate the history list.
        
        Display the history list with line numbers, prefixing each modified
        entry with a `*'.  An argument of N lists only the last N entries.
        
        Options:
          -c	clear the history list by deleting all of the entries
          -d offset	delete the history entry at position OFFSET. Negative

     

    흠.. 뭐가 되는 것 같다.

    dev@dev:~$ history -c
    dev@dev:~$ history
        1  history
    dev@dev:~$

     

    하지만 다시 접속해보면 그대로 나온다.

     

     

    history는 원천적으로 지워야 한다. history 내용은 ~/.bash_history 파일 안에 들어 있다. 그럼 이 파일을 지워야겠다.

     

     

    쩝. 다시 로그인해서 보니 history 내용에 "저 히스토리 지우고 나갔어요~"라고 나온다.

     

     

     

    깔끔하게 명령어 히스토리 (history) 지우기 


    셀 옵션을 변경하는 set 명령어가 있다. 이 명령어에 보면 history를 on/off 하는 옵션이 있다.

     

    $ set +o history // off
    $ set -o history // on

     

     

    해당 옵션을 사용하면 off 시킨 내역은 기록되지만, off 후의 ls, history, dir은 기록되지 않고 on 후의 history는 기록된다.

     

    dev@dev:~$ history -c
    dev@dev:~$ set +o history
    dev@dev:~$ ls
    Desktop  Documents  Downloads  Music  Pictures  Public  snap  Templates  Videos  work
    dev@dev:~$ history
        1  set +o history
    dev@dev:~$ dir
    Desktop  Documents  Downloads  Music  Pictures	Public	snap  Templates  Videos  work
    dev@dev:~$ set -o history
    dev@dev:~$ history
        1  set +o history
        2  history
    dev@dev:~$

     

    문제는 이렇게 해도 두어 개의 기록은 남는다. 그럼 어떻게 해야 할까.

     

    $ set +o history
    $ rm ~/.bash_history
    $ touch ~/.bash_history
    $ history -c
    $ set -o history

     

    종료할 때, exit 등을 사용하면 기록이 남으니 그냥 연결을 끊어야 한다. 다시 들어가 보면.. 흠.. 좋군....

     

    dev@dev:~$ history
        1  history
    dev@dev:~$

     

     

     

    마무리


    운영체제에는 사용 기록 이외에도 다양한 로그가 남는다. 그냥 프라이버시 관점에서 몇 개의 로그를 삭제하는 것이니 많은 것을 기대하신 분에게는 가치 없는 내용이겠지만. ㅎㅎ

    정리해서 아래와 같이 하면 대략 정리가 된다.

    $ sudo rm /var/log/wtmp
    $ sudo touch /var/log/wtmp
    $ sudo rm /var/log/lastlog
    $ sudo touch /var/log/lastlog
    
    $ set +o history
    $ rm ~/.bash_history
    $ touch ~/.bash_history
    $ history -c
    $ set -o history

     

     

     

     

     

     

     

    댓글