シェルの履歴を完全に非表示にしたり、ログに記録されないようにすることは完全に可能ですか?
誰がいつディレクトリの名前を変更したかを見つけようとしています。問題は、私のdbaがディレクトリの名前を変更し、ディレクトリの日時を書き留めていないことです。それは大いに役立ったかもしれません。
これは、Solaris に依存するのではなく、実際に使用するシェルに依存します。
従来の Bourne シェル (Solaris 10 以前では /bin/sh ) のような一部のシェルは、コマンド履歴をまったく記録しないため、その場合はうまくいきません。
他のシェルでは、ユーザー構成 (csh では savehist、ksh および bash では HISTFILE/HISTSIZE) に応じて、定義された数のコマンドがディスクに記録される場合があります。ksh は履歴をリアルタイムで記録しますが、bash はシェルの終了時に履歴を記録するため、シェルが突然終了すると履歴が失われる可能性があります。Bashには、一部のコマンドが履歴に表示されないようにする設定もあります(HISTCONTROL、HISTIGNORE、HISTFILESIZE)。複数のインタラクティブ シェルを実行している場合、bash で histappend シェル オプションが設定されていないと、コマンドが失われます。
bash
コマンド エントリをHISTFILE
(既定では ) に格納し、保持する数の固定サイズ(既定~/.bash_history
では ) を持ちます。あるタイプのコマンドがその数を超えると、それらの履歴が失われます。HISTFILESIZE
500
コマンドも無視できます。HISTIGNORE
先頭のスペースで始まるコマンドと同様に、 を参照してください。 を参照してくださいHISTCONTROL=ignorespace
。それらは に保存されることはありませんHISTFILE
。
何らかのロギング メカニズムを使用する場合、コマンドのロギングを回避するか、ログ エントリをブロックするかは、その特定のソフトウェアに依存します。