当 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 startxwhichstartx将 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 之一才能重新登录。

相关内容