
または/dev/tty1
を使用して、 の行を に設定して、仮想コンソールから X サーバーを手動で起動するとします。X サーバーは実行され、別の仮想コンソール (通常は ) に配置されます。しばらくして、 を使用して画面をロックし、コンピュータから離れることにしました。画面のロックを解除するには、ユーザーのパスワードを知っている必要があります。ここで誰かが実行中の X サーバーを強制終了すると、 で実行中のシェルに戻され、コンピュータにアクセスできる状態になります。通常、X サーバーは、または を使用して初期コンソールと実行中のプロセスに切り替えて、 で強制終了できます。xinit
startx
id:3:initdefault:
/etc/inittab
/dev/tty7
xscreensaver --lock
/dev/tty1
Ctrl+Alt+Backspace
SIGTERM
^C
これは簡単に実行できます。つまり、これを防ぐ簡単な方法があるはずです。私はvlock
これを防ぐために仮想コンソールをロックするには/dev/tty1
:
$ xinit && vlock || vlock
Xサーバーが復帰すると、正常&&
かどうかにかかわらず||
、コンソールはロックされます。これは最適な解決策ではないかもしれません。私は読んだことがありますこれ糸とこれさまざまな解決策を説明するウィキ記事。
X セッションから仮想コンソールへのこのようなアクセスを防ぐには、他にどのような方法がありますか? 上記の方法は十分に安全ですか? システムでこれを防ぐにはどうすればよいですか? ディスプレイ マネージャーは使用しません。
答え1
Xorgからのコンソールスイッチを防ぐには、Option "DontVTSwitch" "yes"
Xorg 設定ファイルに追加します。
Ctrl+ Alt+を防ぐためにBackspaceは、DontZap
オプションを Xorg 構成ファイルに追加します。もちろん、これによってコンソールへのアクセスが完全に防止されるわけではありません。X
ドライバーの問題など、何らかの理由で終了した場合でも、攻撃者はコンソールにアクセスできます。
exec startx
の代わりにを使用することもできますstartx
。これは bash を startx に置き換えます。つまり、誰かが中止できたとしても、X
コンソールにアクセスできなくなります。 、 、 などのディスプレイ マネージャーを使用することもできます。lightdm
そのためkdm
、ax セッションを開始するために既存のシェル セッションは必要ありません。gdm
xdm
答え2
私の には次のエントリがあります.profile
:
# startx if on tty1 and tmux on tty2
if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/tty1 ]]; then
exec xinit -- :0 -novtswitch &>/dev/null &
logout
elif [[ $(tty) = /dev/tty2 ]]; then
tmux -f $HOME/.tmux/conf new -s secured
fi
にログインする場合はX
、TTY1を使用します。 はlogout
、TTY7で が起動した後X
、TTY1からログアウトすることを保証します。xオートロックそしてスロック画面ロックツールとして使用します。
が強制終了するとX
、空の TTY7 に戻され、再度ログインするには 6 つのアクティブな getty のいずれかに切り替える必要があります。