通常情况下,用户需要身份验证才能登录 Linux 系统。密码有助于保护系统中存放的敏感或个人文件、电子邮件和其他数据,以免受到物理入侵。但是,如果您的系统已经位于「安全位置」,不存在任何隐私威胁,那就可以启用自动登录功能。
Windows 和 macOS 都能够实现开机自动登录,Ubuntu 系统当然也不例外:
- 自动登录允许跳过 Ubuntu Desktop 的登录界面,直接进入桌面环境。
- 在 Ubuntu Server 中,自动登录会消除手动输入凭据的要求。
在配置 Ubuntu 自动登录之前,先要了解 TTY 的概念,这有助于为接下来的配置步骤提供必要的背景知识。
TTY 是什么
TTY 是 teletypewriter 的缩写,源自 Unix 早期。当时,用户通过物理的电传打字机连接到计算机;如今,TTY 通常指终端设备,可以是物理控制台、虚拟控制台或伪终端(如终端模拟器程序)。
可以在 Ubuntu 中使用tty
命令当前登录的 TTY,该命令会输出连接到标准输入终端的文件名。
查看 tty
在此示例中,用户登录到了 tty1。根据您使用的 TTY 或终端模拟器,实际输出可能会有所不同。
tty1 指的是第一个虚拟控制台。在典型的 Ubuntu 系统中,有六个虚拟控制台可通过按下键盘Ctrl + Alt + F1
至F6
键来访问。tty1 对应于Ctrl + Alt + F1
,tty2 对应于Ctrl + Alt + F2
,以此类推。
如果您在图形环境中使用终端模拟器(如 GNOME Terminal 或 xterm),tty
命令可能会输出类似于/dev/pts/0
的内容,这是因为每个打开的终端窗口都有自己的伪终端。
现在您对 TTY 有了基本了解,下面我们就开始介绍如何在 Ubuntu 中启动或禁用自动登录。
在 Ubuntu Desktop 中启用自动登录
1打开「设置」- 将左侧面板向下滚动到底部,点击「用户」选项。
2点击右上角的「解锁」按钮,并输入密码进行身份验证。
启用 Ubuntu 桌面版自动登录
3将「自动登录」切换到开启状态,以启用 Ubuntu 桌面版的自动登录。
启用 Ubuntu 桌面版自动登录
从现在开始,您应该能够在 Ubuntu 桌面版中实现自动登录,无需输入用户名和密码。要禁用自动登录,只需按照上述步骤关掉开关即可。
在 Ubuntu Server 中启用自动登录
Ubuntu 服务器,通常默认不带图形用户界面(GUI),如果希望在 Ubuntu Server 启动后自动登录到命令行控制台(TTY),可以按照以下步骤操作:
1使用 nano 或 vi 等文本编辑器打开/etc/systemd/logind.conf
配置文件:
sudo vi /etc/systemd/logind.conf
2在打开的文件中,查找以#NAutoVTs
开头的行。通过删除该行开头的#
符号来取消注释。在等号后面,输入希望自动登录的 TTY 数量。例如NAutoVTs=6
将自动登录前 6 个 TTY。
3接下来,寻找以#ReserveVT
开头的行。通过删除该行开头的#
符号来取消注释。在等号后面,输入希望跳过自动登录的第一个 TTY 的编号。例如,如果希望自动登录 TTY 1-6,则应将ReserveVT=7
设置为从第 7 个 TTY 开始保留。
更改 logind.conf 配置文件
NAutoVTs 和 ReserveVT 这两个指令是与 systemd-logind 服务相关的配置,它负责处理 Linux 系统中的用户登录,通常可以在logind.conf
配置文件中找到相关配置。
- NAutoVTs:该指令设置 systemd-logind 默认要管理的虚拟终端(VT)数量。但并不意味着 VT 的数量不能超过此值,只是 systemd-logind 不会自动分配超过该数量的 VT。虚拟终端将根据需要即时分配。
- ReserveVT:该指令设置第一个要无条件保留给 getty 使用的虚拟终端编号。这意味着没有图形登录(如桌面管理器)可以使用该终端。如果设置为
0
,则不会无条件保留任何终端。
基本上,这些指令控制 systemd-logind 管理的虚拟终端数量,并确定保留哪些终端以供特定类型的使用。
4保存修改好的配置文件,并退出文本编辑器。
5现在,需要创建一个服务来实现用户的自动登录。请在/etc/systemd/system/
路径下创建一个名为 getty@tty1.service.d
的目录。
sudo mkdir /etc/systemd/system/getty@tty1.service.d/
将上述命令中的 tty1 替换为每个要自动登录的 TTY,例如 tty2、tty3 等。
6使用以下命令创建第一个 TTY 的服务:
sudo vi /etc/systemd/system/getty@tty1.service.d/override.conf
7使用 nano 或 vi 等文本编辑器打开上述配置文件,并粘贴如下内容:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin billyfu %I $TERM
Type=idle
创建服务文件
8将billyfu
替换为您实际的用户名,保存文件并退出。
9对于每个想要自动登录的 TTY,重复步骤 5-8。
10重启 Ubuntu Server。
重新启动后,Ubuntu 服务器应该就会自动登录到指定的 TTY。
Ubuntu Server 自动登录
要禁用 Ubuntu 服务器的自动登录功能,只需反向操作。将之前取消注释的所有行重新注释掉,并删除添加的目录和配置文件即可。
不推荐在 Ubuntu 中启用自动登录
虽然在 Ubuntu 中启用自动登录可能很方便,但对于某些用户来说,不建议启用自动登录的原因有:
- 降低控制权:自动登录意味着系统始终以默认用户登录,对于多用户系统可能带来问题。
- 隐私问题:如果与他人共享计算机,自动登录意味着任何人都可以访问您的个人文件,可能会看到私密信息。
- 未经授权的变更风险:启用自动登录后,任何人都有可能更改系统设置、安装或卸载软件,或做出可能影响计算机使用的其他更改。
- 数据被盗风险:如果计算机被盗,自动登录后,他人就能够立即获取所有文件和数据。
- 忘记密码:如果在一段时间内不输出密码,可能会忘记密码。
因此,在决定是否启用 Ubuntu 自动登录功能之前,应该仔细考虑这些潜在风险。
Ubuntu 自动登录功能提供了一种便捷的方式,无需每次启动系统时输入用户凭据。这个功能对于安全环境下的单用户系统或需要快速访问的情况特别有用。