GNU/Linux >> Linux の 問題 >  >> Linux

CentOS / RHEL :BASH シェルの履歴を無効にする方法

質問:ユーザーのシェル履歴を保存しないように、BASH シェル履歴を無効にする方法は?

解決策:

次のような行を /etc/profile または新しい /etc/profile.d/*.sh ファイルの末尾に追加します

unset HISTFILE

これにより、ユーザーが HISTFILE 変数を手動で構成しない限り、各ユーザーの bash シェルは履歴ファイルの保存をスキップします。

注意

ユーザーが自分の bash シェル履歴を保存するのを完全に防ぐ実用的な方法はありません。 HISTFILE を手動で宣言することにより、ユーザーは引き続き自動保存されたシェル履歴を取得できます 変数。ユーザーは、以下を ~/.bash_profile または ~/.bashrc に追加して、独自の履歴ファイルを作成できます。

HISTFILE=$HOME/.my_history_file

ユーザーが bash プロセスでコマンド履歴を自動保存するのを困難にするには、次の手順を実行します。

1. 投稿の冒頭で最初に説明したように、未設定の HISTFILE をグローバル構成に追加します。

2. root として、すべてのユーザーのホーム ディレクトリにある ~/.bashrc および ~/.bash_profile ファイルの所有権を取得します。例:

# chown root:root ~bob/.bashrc ~bob/.bash_profile

root として、同じファイル (すべてのユーザーのホームディレクトリにある) を不変にします。例:

# chattr +i ~bob/.bashrc ~bob/.bash_profile

これらの手順を実行しても、ユーザーが bash プロセスを開始するたびに、コマンドラインから HISTFILE 変数を手動で宣言することは妨げられないことに注意してください。したがって、変数 HISTFILE を宣言した場合でも、コマンド履歴をファイルに保存できます。

Solaris :bash シェル コマンドの履歴に日付とタイムスタンプを含める方法
CentOS / RHEL :history コマンド出力で実行されたコマンドの日時を取得する方法
UNIX / Linux :bash history コマンドの例最後のコマンドを繰り返す


Linux
  1. CentOSでSELinuxを無効にする方法は?

  2. CentOS / RHEL 7 で NetworkManager を無効にする方法

  3. CentOS / RHEL 5 で IPv6 を無効にする方法

  1. CentOS/RHEL で lvmetad を無効にする方法

  2. CentOS/RHEL 8 で IPv6 を無効にする方法

  3. CentOS/RHEL 7 で ACPI を無効にする方法

  1. CentOS / RHEL 6:telnet サービスを無効にする方法

  2. CentOS/RHEL 8 で NetworkManager を無効にする方法

  3. bash で履歴の編集を無効にする方法