仮想コンソール(ctrl + alt + {f1-f6})にのみbashタイムアウトを設定できます。

仮想コンソール(ctrl + alt + {f1-f6})にのみbashタイムアウトを設定できます。

私が設定できることを知っていますTMOUT変数は、指定された非アクティブ期間が経過すると自動的に bash セッションを終了します。しかし、私が望むものはそれを適用することですただctrl+ alt+{ F1...}を介してアクセスできる6つの内蔵仮想コンソールがありますF6

私はターミナルを開こうとするとき、ほとんど常にターミナルアプリを使用します。私はコンピュータの席を空にすると、誰かがこの端末にアクセスできないように画面をロックします。だから私はこれのタイムアウトをしたくありません。

ただし、まれに仮想コンソールの1つを使用してコンピュータで作業します。通常、これはデフォルトのGnomeセッションが停止しているか使用できないために発生します。問題のあるアプリケーションを終了し、メインセッションに戻りました。

さらに、Gnomeセッションを再開したときに仮想コンソールを終了するのを数回忘れました。したがって、私が離れると、私のコンピュータは完全に保護されません。 Gnomeで画面をロックするとGUIだけがロックされるため、ユーザーは仮想コンソールに切り替えて自分のgnomeロック画面を終了したり、自分のコンピュータを台無しにすることができます。

ターミナルアプリケーションセッションを無期限に非アクティブに保ちながら、内蔵仮想コンソールにのみタイムアウト値を設定できますか?

答え1

グラフィック端末で動作していることを確認し、TMOUTそうでない場合にのみ設定できます。これを行う簡単な方法は、tty次のコマンドを使用することです。

   tty - print the file name of the terminal connected to standard input

GUI端末エミュレータで実行している場合:

$ tty
/dev/pts/5

仮想コンソールで実行する場合:

$ tty
/dev/tty2

したがって、ファイルに次の行を追加すると、~/.profile10分後にbashセッションが終了します。

tty | grep tty >/dev/null && TMOUT=600

答え2

私は決してTMOUTソリューションが好きではありませんでした。まず、プロンプトでセッションを終了したときにのみ機能するため、Vimでセッションを終了すると、sudoパスワードプロンプトでもタイムアウトは発生しません。第二に、セッションが閉じるのではなく、グラフィック環境のようにロックされていることを望みます。

GNU Screenは、一定期間活動がなければロックすることができるので、次のことを行いました。私の始めに~/.bashrc以下を追加しました。

if [ "$TERM" = "linux" ] && tty | egrep -q '^/dev/tty[[:digit:]]+$'
then
    exec screen -c ~/.ttyscreenrc
fi

これは、Bashが交換され、終了するとTTYセッションが閉じるexecために重要です。screen

私は~/.ttyscreenrcこれを入れました:

startup_message off
idle 180 lockscreen

3分間アクティビティがないと、画面のスタート画面はスキップしてロックされます。

答え3

これはPAMモジュールの良い例ですpam_env.so。仮想コンソールログインはこのloginプログラムを使用するので、それを開いて次/etc/pam.d/loginの行を追加できます。

session  required  pam_env.so  readenv=1 envfile=/etc/vc-environment user_readenv=0

付属の新しいファイルを使用すると、次のようになります/etc/vc-environment

TMOUT=600

PAMを使用すると、2つの利点があります。

  • 仮想コンソールにログインしているすべてのユーザーに機能します(後で変更するのを防ぐことはできませんTMOUT)。
  • タイムアウトは他の特定のサービスにも適用できますsudo

ここを読んでくださいこのモジュールの詳細です。

関連情報