Linuxマシンのセキュリティを真剣に考えているなら、bashの履歴を消去した方が良いかもしれません。単一のコマンドよりも効率的に履歴を消去する方法を学びましょう。

Linuxマシンでは、bashコマンドの履歴が保存されます。これは、コマンドを繰り返す必要がある場合や、以前のセッションでコマンドをどのように実行したかを正確に思い出せない場合に役立ちます。しかし、これはセキュリティ上の問題ともなり得ます。誰かがあなたのマシンにアクセスし、ターミナルウィンドウを開いてbashの履歴を調べ、実行したコマンドを確認したらどうなるでしょうか?
Bashには履歴を消去する便利な方法があります。コマンドhistory -cを実行するだけです。ただし、この方法には少し問題があります。説明しましょう。
まず、bashの履歴は~/.bash_historyファイルに保存されます。ターミナルを開いてコマンドを実行すると、そのコマンドが履歴ファイルに書き込まれます。そのため、history -cを実行すると、そのファイルから履歴が消去されます。問題は、複数のターミナルウィンドウを開いている場合に発生します。2つのターミナルウィンドウを開いていて、最初のウィンドウでhistory -cコマンドを実行し、そのウィンドウを閉じたとします。次に2つ目のターミナルウィンドウに移動し、 exit コマンドを入力してそのウィンドウを閉じます。2つ目のbashウィンドウが開いていたため、最初のウィンドウでhistory -cコマンドを実行した後も、その履歴は保持されます。つまり、history -cコマンドは、最後に残ったターミナルウィンドウから実行した場合にのみ機能します。
どうすれば回避できるでしょうか?.bash_historyファイルをインスタンスごとに空にするか、crontab ジョブを使って定期的に空にすることができます。セキュリティを重視する場合は、crontab ジョブの設定を検討してください。手順は以下のとおりです。
見る: Linux Foundation、オープンソースのセキュリティ強化を目的としたバッジ プログラムを開始 (ZDNet)
定期的にbashの履歴をクリアする
このための crontab ジョブを設定する方法を説明する前に、次のコマンドで~/.bash_historyファイルをクリアできることを知っておいてください。
cat /dev/null > ~/.bash_history
これにより、ファイルの内容は空になりますが、ファイルはそのまま残ります。
Linuxサーバーの管理者であるoliviaというユーザーの.bash_historyファイルを毎日午後11時に消去したいとします。oliviaアカウントでcronジョブを作成します。これを行うには、oliviaユーザーとしてログインし、ターミナルウィンドウを開いて、 crontab -eコマンドを実行します。crontabエディタが開いたら、以下を入力します。
00 23 * * * cat /dev/null > ~/.bash_history
そのファイルを保存すると、cron は毎日午後 11 時に olivia の履歴の消去を開始します。
確実な方法
これはbashの履歴を消去する確実な方法です。ただし、 history -cコマンドに頼りすぎるのは良くありません。なぜなら、2つ目(あるいは3つ目)のターミナルがいつ開いて、履歴を保存できる状態になっているか分からないからです。
こちらもご覧ください
- Linux上のGoogle CloudをGrive2で同期する方法
- GNOMEのプライバシーオプションにより、ユーザーはデスクトップのセキュリティをさらに強化できます。
- モノのインターネットにオープンソースが必要な理由
- Ubuntu Phoneでアプリの権限を管理する方法
- darkstatを使ってLinuxサーバーのネットワークトラフィックを監視する方法
- パワーチェックリスト: Linux ユーザーアカウントの管理とトラブルシューティング

ジャック・ウォーレン
ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。