我已经安装了 Ubuntu 12.04 & 并编辑了 /etc/default/grub 文件以自动启动到文本模式。但是每次我打开电脑时它都会要求输入用户名和密码(在文本模式下),我希望它自动登录而不要求输入用户名和密码,所以在图形模式下我去“系统设置->用户帐户”并检查“自动登录”,但没有用。那么即使在文本模式下我应该怎么做才能自动登录?
Joh*_*ber 11
启动到文本模式
须藤vim /etc/default/grub
并更改以下行:
GRUB_CMDLINE_LINUX_DEFAULT="text"
Run Code Online (Sandbox Code Playgroud)
退出并输入:
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
自动以文本方式登录,无需指定用户名或密码
Ubuntu 的新贵版本
添加-a <your-user-name>到该行:
exec /sbin/getty -8 38400 tty1
Run Code Online (Sandbox Code Playgroud)
在文件 /etc/init/tty1.conf 中
像这样:
exec /sbin/getty -8 38400 tty6 -a gruber
Run Code Online (Sandbox Code Playgroud)
/etc/init/tty1.conf 是在适当的时间运行以在 tty1 上启动终端会话的 upstart 作业。添加该-a选项会告诉 getty 使用 -f 选项调用登录程序以登录该用户,绕过 getty 的用户提示和 login 的密码提示。
Upstart 是作为内核初始化进程(进程 1)运行的 Ubuntu 系统。
我在我的 tty6 上对此进行了测试,效果很好。由于 upstart respawn 行,如果您退出 shell,它将自动重新启动。
Ubuntu 的系统版本
较新版本的 Ubuntu 主要使用 systemd 来管理系统进程。因此,有新的做事方式。
systemd tty 的用法也有点不同,图形终端可能运行在前几个虚拟终端上。tty6 被保留为带有 systemd 的文本虚拟终端,可能还会有其他的。
要在您输入时登录 tty6:
sudo systemctl edit getty@tty6
Run Code Online (Sandbox Code Playgroud)
nano 编辑器将出现在一个临时文件中。在该编辑器中输入以下内容:
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f gruber' -a gruber --noclear %I $TERM
Run Code Online (Sandbox Code Playgroud)
退出编辑器。
放入额外的 ExecStart= 行不是错字。这非常重要,因为它告诉 systemd 忘记它已经知道的原始 ExecStart 参数(来自 /lib/systemd/system/getty@.service),以便您可以替换 ExecStart。
您可以使用以下命令检查结果:
systemd-analyze verify getty@tty6.service
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我在那里看到了一些警告,但不是关于我们在这里做什么的。
如果 tty6 上已经有一个 tty 进程,您必须重新启动它才能看到结果。
为了弄清楚这一点,我参考了https://askubuntu.com/a/659268/63886上的优秀答案。Muru 碰巧使用了相同的目标作为如何定制 systemd 的示例。他的 ExecStart 行是:
ExecStart=-/sbin/agetty -a muru --noclear %I $TERM
Run Code Online (Sandbox Code Playgroud)
不同之处似乎是我的版本中出现了更多与 systemd 相关的环境变量。
上述编辑的最终结果是在 /etc/systemd/system/getty@tty6.service.d/ 中创建一个名为 override.conf 的文件,其中包含您在上面键入的内容。如果您要自己创建这样的文件,则需要运行systemctl daemon-reload命令让 systemd 识别它,然后可能再次在该虚拟控制台上重新启动任何现有的 getty 进程。systemctl --edit 为您处理守护进程重新加载。
| 归档时间: |
|
| 查看次数: |
66897 次 |
| 最近记录: |