私が設定できることを知っています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
したがって、ファイルに次の行を追加すると、~/.profile
10分後に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
。
ここを読んでくださいこのモジュールの詳細です。