
でシークレットセッションを開くことはできますかbash
?
たとえば、コマンドにパスワードを入力する必要がありますが、bash
これを履歴に追加したくない場合です。
答え1
bash
ロギングコマンドを停止するには、HISTFILE
変数の設定を解除するだけです。
HISTFILE=
すべての追加コマンドは記録されません.bash_history
。
一方、実際にコマンドの引数としてパスワードを入力すると、すでに間違った操作を行っています。.bash_history
世界中で読むことができないので、この場合最大の脅威ではありません。
ps
/proc
大きな問題です。システムのすべてのユーザーは、現在実行中のコマンドを表示できます。そして彼らのすべての主張。したがって、パスワードをコマンドライン引数として渡すことは本質的に安全ではない。パスワードを安全に提供するには、環境変数または構成ファイル(600をchmodded)を使用してください。
答え2
HISTCONTROL=ignorespace
このオプションが設定されていない場合は、必要なbash
ものかもしれません。すべての履歴を無効にするよりも弱くなります。この設定では、空白文字で始まるコマンドラインは履歴リストに保存されません。
次の関連リンクから:
答え3
一時的に履歴を無効にできます。set +o history
set +o history
...
set -o history
履歴を無効にすることと設定を解除することには違いがありますHISTFILE
。
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
出力は次のとおりです。
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
つまり、すべてのコマンドが履歴リストに保存されます。exit
保存するには入力してください。
しかし、
set +o history
date
ls
set -o history
history
出力は次のとおりです。
115 set +o history
116 history
一般化する:
set +o history
長時間セッションに使用されます。
HISTCONTROL
そして<space>command
他の時には。