Linux(Ubuntu)サーバーでssh経由でログインしたときに、サーバー上の他のユーザーが実行したすべてのbashコマンドがコマンド履歴に保存されることを確認しました。サーバーの他のユーザーがコマンドラインに入力するコマンドを非表示にする方法はありますか?
ベストアンサー1
コマンド履歴を隠す方法はいくつかありますが、履歴を完全にオフにすることは非常に便利なので、良い考えではありません。一時的にオフにする3つの良い方法は次のとおりです。
最速のソリューション:タイプ
unset HISTFILE
これにより、現在のログインセッションで実行されているすべてのコマンドがログアウトしたときに.bash_historyファイルに保存されなくなります。次回ログインするとHISTFILEがリセットされるため、履歴は通常どおり保存されます。また、これは削除されます。みんなunset HISTFILE を入力する前に実行されるコマンドを含む、セッション内のコマンドが望ましくない場合があります。もう1つの欠点は、ログアウトするまで正しく実行したかどうかわからないことです。なぜなら、bashはまだ上矢印を使って前のコマンドを見ることができるからです。
最高のソリューション:コマンドの前にスペースを入力してください。
一度試して、上矢印をクリックして履歴に追加されたことを確認してください。一部のWebサイトでは、これらのコマンドを保存しないように設定しています。うまくいかない場合は、その行を
export HISTCONTROL=ignoreboth
.bashrcファイルに追加してください。後でログインすると、スペースで始まるコマンドはすぐに忘れられます。覚えやすい:タイプ
sh
これにより、元の Bourne シェルを使用してサブシェルが開始されます。そこに書かれたコマンドは(あなたが前まで
exit
)履歴に保存されません。履歴ファイルを見ている人は誰でもshを実行したことがわかりますが(疑わしい)、何を実行したのかわかりません。
これを行う他の方法がたくさんあります。覚えてはいけないコマンドをbashに伝えることもできます(HISTIGNORE)。さまざまな可能性については、bash(1)のマニュアルページを参照してHISTを検索してください。