如何在Linux(RHEL/CentOS 7)中禁用tty或者启用tty控制台

时间:2020-01-09 10:38:12  来源:igfitidea点击:

如何为超过6个控制台启用tty。
如何禁用Linux中的所有tty终端。
systemd禁用tty。
systemd在Linux中使用getty服务启用tty。

我写了另一篇文章来理解/dev/tty/dev/pts之间的区别。

在本文中,我将分享禁用tty并为Linux中的特定终端控制台启用tty的步骤。

TTY基本概述

  • tty控制台由Red Hat Enterprise Linux 7 OS中的systemd管理。

  • tty控制台是在访问时即时创建的。

  • 允许的控制台数量可以在/etc/systemd/logind.conf文件中进行配置。

  • 将此文件中的" NAutoVTs ="值设置为所需的数字,以使systemd能够生成许多tty控制台。

  • 默认情况下,Linux系统上有6个可用的终端,可以使用Ctrl + Alt + F [1-6]进行访问。

禁用TTY终端控制台

要禁用tty终端,请在/etc/systemd/logind.conf中进行以下更改

NAutoVTs=0
ReserveVT=N

说明:

ReserveVT取一个正整数。
标识一个虚拟终端,该虚拟终端应无条件地保留用于" autovt @ .service"激活。
使用此选项选择的VT将被无条件标记为忙,因此没有其他子系统会分配它。
此功能对于确保不管其他子系统分配了多少VT,始终保持一个登录权限都是有用的。

现在,由于我们的目标是禁用所有终端,因此我们将对" ReserveVT"的值保留为N。
通过此步骤,我们已禁用了所有可用的端子。
现在,我们可以手动启用所需的终端。

重要的提示:

tty1无法禁用,因为它由xorg进程使用,并且已被硬编码。

启用TTY终端控制台

为了演示本文,我将在Linux主机上启用对终端2和终端3的控制台访问。

在/etc/systemd/system/getty.target.wants中创建要启用的tty的符号链接。

node1:~ # ln -sf /usr/lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
node1:~ # ln -sf /usr/lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

使用systemctl启用tty:

node1:~ # systemctl enable [email protected]
node1:~ # systemctl enable [email protected]

验证更改

node1:~ # ls -l /etc/systemd/system/getty.target.wants/[email protected]
lrwxrwxrwx 1 root root 38 Jun  1 15:23 /etc/systemd/system/getty.target.wants/[email protected] -> /usr/lib/systemd/system/[email protected]
node1:~ # ls -l /etc/systemd/system/getty.target.wants/[email protected]
lrwxrwxrwx 1 root root 38 Jun  1 11:49 /etc/systemd/system/getty.target.wants/[email protected] -> /usr/lib/systemd/system/[email protected]

接下来重启节点以激活更改

node1:~ # reboot

一旦节点在重启后成功UP后,尝试使用Ctrl + Alt + F [4-6]连接到其他终端,我们会发现尽管启用了终端1-3,但所有这些终端都将被禁用,因为我们的配置。