我目前正在使用 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