2015-10-13 82 views
1

爲了安全起見,我想在Linux上保護我的歷史文件(.bash_history)。如你所知,歷史文件保留了最後500條命令行。 我想,除了添加最後一行外,沒有人可以更改此文件。換句話說,應該只添加命令,並且只添加最新的行如何在Linux上保護.bash_history文件

+0

如果您無法刪除較舊的條目,如何僅保留最近的500條命令? –

+1

你的擔心究竟是什麼? 「出於安全原因」含糊不清,誰的安全 - 你的,檔案本身或其他人,還有什麼危險? (希望小貓不會死!) –

+0

@ l'LL爲文件本身和我自己。如果有人可以更改歷史文件中的行。我的老闆可以指責我「你做到了!它的歷史檔案!」。你明白嗎? :) Actualy,它是我老闆的作業:)他希望我學習如何保護歷史文件:) – Colorist

回答

2

讓你的.bash_history的文件僅追加

$ sudo chattr +a /home/user/.bash_history

一個 - 只有追加:寫入文件將只允許文件是 以追加方式打開進行寫入。那就是你不能重定向輸出 來覆蓋文件,只能追加到它。大多數正常的文件編輯 操作(如使用文本編輯器打開文件)很可能會失敗,因爲程序將嘗試用 更改覆蓋文件,並顯示「權限被拒絕」。此屬性只能由具有超級用戶權限的帳戶設置。

chattr的手冊頁是here。檢查其他屬性也一樣,希望這有助於在某種程度上

+1

爲什麼你回答問題*並*將它標記爲脫離主題,阻止其他人回答它? –

+0

非常簡單,它的外在問題,但同時我想對這個傢伙有所幫助。決定何時阻止他人回答的不是我。 – deimus

1

爲了避免bash從拆除舊的歷史記錄條目,你可以在你.bashrc文件中設置此:

HISTSIZE=-1 
HISTFILESIZE=-1 

HISTSIZE告訴bash歷史的最大條目數保持。

HISTFILESIZE tell bash最大條目數HISTFILE(通常爲.bash_history)應該有。

將它們設置爲-1告訴bash使用無限制。

+0

如果有人出現並將值更改爲「0」或「1」,該怎麼辦? –

+0

我試圖提供一個基於bash配置(信任用戶)的答案,因爲deimus已經基於文件強制實施了一個配置。無論如何,如果他不能相信自己的用戶,可以對'.bashrc'和其他文件造成更多的傷害。此外,'.bashrc'可以變爲root,或者設置爲不可變。 –