仅允许 root 进行虚拟终端切换

仅允许 root 进行虚拟终端切换

我目前正在使用 CentOS 系统(带有 Gnome 桌面),我想禁用非允许用户使用控制台。实际上,当使用标准用户登录时,它会启动我的应用程序,并且无法访问桌面,但用户仍然可以使用 VT 开关来发出一些命令。另一方面,当以管理员身份登录时,它会启动桌面。

我想要做的是阻止标准用户发出命令,但为管理员启用它。

到目前为止,我已经尝试修改/etc/X11/xorg.conf以成功禁用终端切换(Option "DontVTSwitch" "True"),但它会阻止每个用户使用它。

问题 :

有没有办法允许某个用户进行 VT 切换,而对其他用户禁用它?

答案1

您可以使用pam_时间PAM 模块限制某些用户在某些 tty 上的登录(以及在一天中的某些时间,这是该模块的主要用途)。

因此,如果您想告诉系统除了 root 之外的所有用户都不允许登录 tty0 到 tty7(即通常启用的所有 VT),请将此行添加到/etc/security/time.conf

login ; tty0|tty1|tty2|tty3|tty4|tty5|tty6|tty7 ; !root ; !Al0000-2400

然后account在中的第一行或附近添加以下行/etc/pam.d/login

account  required  pam_time.so

用户仍然可以使用 gdm 登录屏幕登录。虽然他们可以在登录之前(或之后)切换到 VT,但他们所能做的就是看到登录和密码提示;他们将无法在 VT 上成功登录。

在 CentOS 6.6 上测试。

答案2

如果您在 CentOS 7 上运行,systemd-logind 服务可能能够为您处理此问题。它负责会话切换管理和多席位管理。 loginctl 命令控制它 - 下面的 loginctl 链接具有所有可用的标志。

http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html http://www.freedesktop.org/software/systemd/man/loginctl.html

相关内容