當 X 被殺死時阻止訪問 TTY

當 X 被殺死時阻止訪問 TTY

/dev/tty1假設我使用xinit或,從虛擬控制台手動啟動 X 伺服器,並在 中設定startx行。 X 伺服器開始運作並放置在另一個虛擬控制台上,通常是.一段時間後,我決定鎖定螢幕並離開我的電腦。要解鎖螢幕,必須知道我的用戶的密碼。如果有人現在決定終止正在運行的 X 伺服器,他或她將返回到正在執行的 shell,並且幾乎可以存取我的電腦。通常,可以使用 來終止 X 伺服器或切換到初始控制台和正在執行的進程。id:3:initdefault:/etc/inittab/dev/tty7xscreensaver --lock/dev/tty1Ctrl+Alt+BackspaceSIGTERM^C

這是微不足道的——這意味著必須有一些微不足道的方法來防止它發生。我在用著vlock鎖定我的虛擬控制台/dev/tty1以防止這種情況:

$ xinit && vlock || vlock

當 X 伺服器現在返回時,無論&&是否正常||,控制台都會被鎖定。這可能不是最佳解決方案。我讀了線程和維基文章,解釋不同的解決方案。

還有哪些方法可以阻止從 X 會話對虛擬控制台的這種存取?上述方法夠安全嗎?您如何在系統上防止這種情況發生?我不會使用顯示管理器。

答案1

您可以透過新增以下命令來阻止 Xorg 的控制台切換Option "DontVTSwitch" "yes"到您的 Xorg 設定檔。

為了防止Ctrl+ Alt+Backspace你必須添加DontZapXorg 設定檔的選項。當然,這不會完全阻止對控制台的存取。如果X由於某種原因終止,例如驅動程式問題,攻擊者仍然可以存取您的控制台。

您也可以使用exec startxthisstartx將 bash 替換為 startx,這意味著即使有人能夠中止,X他們也將無法存取您的控制台。您也可以使用顯示管理器,例如lightdmkdm、等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 之一才能重新登入。

相關內容