close

其實在系統上留下「輸入指令的記錄」是個安全的作法,至少下了什麼指令會有一個依據,萬一下錯指令還可以看看到底做錯了什麼,只是被老闆砍頭也要有個完整 的紀錄,總不能說"好像"下錯指令,或許有些錯誤不是該自己造成的啊!因此在系統下command的記錄還是完整的保留一下好了!

但是或許有時候會想來一個例外狀況,可能一些指令會有帶帳號密碼的,這時候當然就不會希望在系統上留下記錄,最簡單的做法就是HISTSIZE=0,不過這樣的作法所有的歷史記錄都會被清除,會不會被老闆質疑「你為什麼要把command記錄都刪除?」,當要查閱記錄的時候頭就大了。因此為了能繼續的有完整的指令記錄,但是又要避免掉一些敏感指令被記錄,這實就可以利用HISTCONTROL來達成這個目的。

HISTCONTROL有簡單的三種用法:

  • HISTCONTROL=ignorespace
    執行以上的變數設定,之後只要是comannd前有空白的話,history將不會記錄你下的command。
    [root@me]  ~
    $ echo wawa
    wawa

    [root@me]  ~
    $  echo bebo   #echo前有加空格
    bebo

    [root@me]  ~
    $ history | tail -2
       16  echo wawa
    echo bebo 那行並不會出現在history的記錄當中
       17  history | tail -10
  • HISTCONTROL=ignoredups
    執行以上的變數設定,之後只要是重複下的指令,只會被記錄一次
    [root@me]  ~
    $ echo easylife   #echo 4次easylife
    easylife

    [root@me]  ~
    $ echo easylife
    easylife

    [root@me]  ~
    $ echo easylife
    easylife

    [root@me]  ~
    $ echo easylife
    easylife

    [root@me]  ~
    $ echo good   #echo 1次good
    good

    [root@me]  ~
    $ history | tail -5
       38  echo easylife
    echo easylife 4次卻只出現一筆記錄
       39  echo good
       40  history | tail -5
  • HISTCONTROL=ignoreboth
    這個就是結合以上兩種,就不再示範囉!


或許有人想說這的確是不錯的一個資訊,只是到底用到的時機到底是什麼時候?我在這邊可以簡易分享我所想到的用途,首先我絕對會把HISTCONTROL=ignorespace加到.bashrc裡面去,這樣以後只要登入系統就自動生效了,避免自己再去手動執行一次留下記錄(HISTCONTROL=ooxx的記錄),到時候老闆查歷史記錄還會問說你下那行幹嘛?有種你可以回答「做壞事」

改密碼可以用!
若你管理的linux主機很多台,一台一台改密碼只有勞累而已,若你有script的能力,以後改密碼就是批次全部改完而已,連密碼都可以亂數產生(這個自己寫),簡單來說只是用到passwd --stdin的參數。

[root@me]  ~
$  echo "ilovewawa" | passwd --stdin root && history | tail -3
Changing password for user root.
passwd: all authentication tokens updated successfully.   #我改完密碼囉!
   53  who
   54  ls
   55  who   #歷史記錄渾然不覺


http_proxy和ftp_proxy可以用
先參照「Text Mode Use Http Proxy On Linux」 了解一下用途,參照完之後可以了解如何在text mode透過http proxy連線,之前我還寫了一小段function加入在.bashrc,就是要避免帶帳號密碼的http_proxy在history中留下記錄,今 天知道了HISTCONTROL的用法後,其實http_proxy帶帳號密碼的問題就可以不留痕跡囉!

arrow
arrow
    全站熱搜

    樵夫 發表在 痞客邦 留言(0) 人氣()