
/dev/tty1
假設我使用xinit
或,從虛擬控制台手動啟動 X 伺服器,並在 中設定startx
行。 X 伺服器開始運作並放置在另一個虛擬控制台上,通常是.一段時間後,我決定鎖定螢幕並離開我的電腦。要解鎖螢幕,必須知道我的用戶的密碼。如果有人現在決定終止正在運行的 X 伺服器,他或她將返回到正在執行的 shell,並且幾乎可以存取我的電腦。通常,可以使用 來終止 X 伺服器或切換到初始控制台和正在執行的進程。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
thisstartx
將 bash 替換為 startx,這意味著即使有人能夠中止,X
他們也將無法存取您的控制台。您也可以使用顯示管理器,例如lightdm
、kdm
、等gdm
,這樣xdm
您就不需要現有的 shell 工作階段來啟動 ax 工作階段。
答案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。確保在 TTY7 上啟動logout
後,我會從 TTY1 登出。X
我用自動鎖定和鎖作為我的螢幕鎖定工具。
如果X
被殺死,我會被轉回一個空的 TTY7,然後必須切換到六個活動 getty 之一才能重新登入。