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