21 giugno, 2007

Tip: Bash, no alla history!

La shell bash mantiene nella nostra home un file chiamato .bash_history nel quale memorizza gli ultimi comandi digitati. La history può risultare molto comoda in alcuni casi ma può essere sconveniente e mantenere informazioni sulla nostra privacy in altre.

Esempio: l'utente tizio ha un account shell su un sistema remoto e non vuole che nessuno (neppure l'amministratore) venga a conoscenza dei comandi che ha eseguito su quel sistema (consideriamo l'utente in buona fede :) ). Ma i comandi sono memorizzati tutti nel file dalla history!

Per fortuna bash permette di impostare il numero dei comandi mantenuti nella history. Per farlo basta impostare la varibile d'ambiente HISTSIZE. Nel nostro caso (per eliminare proprio la history) basta impostare la HISTSIZE a zero.

24 commenti:

  1. Anonimo8:30 PM

    Ottimo! non lo sapevo... io ho sempre utilizzato questo metodo che forse puo' comunque tornare utile:

    Mi sposto nella home:
    $ cd ~

    Svuoto il contenuto del file:
    $ echo "" > .bash_history

    Un'altra 'chicca' potrebbe essere quella di impostarsi un alias che faccia per noi i comandi di sopra...
    Ad esempio in questo modo qui:

    Sempre nella home e' presente un file chiamato ".bashrc"... possiamo aprirlo e senza modificare nulla inserire nell'ultima riga un qualcosa del genere:

    alias clearhistory='cd ~; echo > .bash_history'

    Dopo aver salvato il file .bashrc possiamo ogni volta resettare la history digitando clearhistory!

    Complimenti per il blog!!!

    RispondiElimina
  2. Il tuo metodo non funziona del tutto. Se dopo aver azzerato il file della history esegui dei comandi, questi verranno salvati nel file .bash_history non appena effettui il logout.

    Esempio:

    $ ssh server_remoto

    $ echo "" > .bash_history
    $ vim test
    $ altro_comando_a_piacimento
    $ exit

    $ ssh server_remoto
    $ cat .bash_history
    vim test
    altro_comando_a_piacimento
    exit

    Quindi per farlo funzionare dovresti richiamare il comando ogni volta prima di effettuare il logout.

    Usando il mio metodo disattivi proprio la history ;)

    RispondiElimina
  3. Anonimo10:40 PM

    Si esatto... il mio metodo e' utile per quando vuoi usufruire dei benefici della history mentre lavori sulla shell, e azzerre il contenuto una volta finito il lavoro... :D

    Diciamo che e' una soluzione del tutto differente dalla tua rispetto all'approccio verso lo stesso problema... :D

    Dato che sono uno che fa uso spropositato della history mi faceva piacere accennare anche a questo metodo.

    resto comunque contento per aver appreso un qualcosa di nuovo dal tuo post...

    Ciaooooooooo!!!

    RispondiElimina
  4. Imho credo che disabilitare completamente una delle funzioni più belle della bash non sia altro che una zappata sui piedi...

    E' decisamente più semplice effettuare uno script di logout che svuota la history, diminuendo anche il numero massimo di comandi memorizzati.

    Ma la domanda è: come fai a lavorare da console senza la history ? :P

    RispondiElimina
  5. In genere non la disattivo mai ma in un caso estremo mi è servito farlo e quindi ecco che ho scritto questo post per qualcuno con la mia stessa esigenza.

    Sono con te sul fatto che la history è molto comoda ma a volte può risultare "sconveniente" ;)

    RispondiElimina
  6. Anonimo3:09 PM

    $ history -c

    ??? non vi piace???

    RispondiElimina
  7. Anonimo6:53 PM

    necessita di verificare:)

    RispondiElimina
  8. Anonimo11:31 AM

    Si, probabilmente lo e

    RispondiElimina
  9. Anonimo5:36 AM

    La ringrazio per intiresnuyu iformatsiyu

    RispondiElimina
  10. Anonimo5:40 AM

    imparato molto

    RispondiElimina
  11. Anonimo5:42 AM

    leggere l'intero blog, pretty good

    RispondiElimina
  12. Anonimo3:02 PM

    imparato molto

    RispondiElimina
  13. Anonimo4:05 PM

    molto intiresno, grazie

    RispondiElimina
  14. Anonimo4:07 PM

    imparato molto

    RispondiElimina
  15. Anonimo9:42 PM

    leggere l'intero blog, pretty good

    RispondiElimina
  16. Anonimo7:37 PM

    leggere l'intero blog, pretty good

    RispondiElimina
  17. Anonimo12:37 PM

    La ringrazio per Blog intiresny

    RispondiElimina
  18. Anonimo6:06 AM

    imparato molto

    RispondiElimina
  19. Anonimo8:31 AM

    imparato molto

    RispondiElimina
  20. Anonimo3:45 PM

    molto intiresno, grazie

    RispondiElimina
  21. Anonimo3:47 PM

    leggere l'intero blog, pretty good

    RispondiElimina
  22. Anonimo8:02 PM

    leggere l'intero blog, pretty good

    RispondiElimina
  23. Anonimo10:02 AM

    quello che stavo cercando, grazie

    RispondiElimina
  24. Anonimo12:11 AM

    leggere l'intero blog, pretty good

    RispondiElimina