[Linux]树莓派:纯命令行界面下已设置用户自动登录,仍需要输入密码
作者:互联网
自动登录一般是不需要密码的,即使已经通过passwd手动修改了密码。
这种情况非常稀有,以至于全网几乎找不到关于此情况的解决方法。。。
0x00:原因
未知。
0x01:现象
已修改过/etc/systemd/system/getty.target.wants/getty@tty1.service的ExecStart参数:
0x02:解决办法
很简单,将ExecStart参数改成这样:
ExecStart=-/sbin/agetty -o '-p -f root' -n -a root --noclear %I $TERM
保存,重启即可。
0x03:解决方法原理
问题可能出在agetty/login上,因为本人曾经修改过SHELL(修改/etc/passwd)但没有效果。
从根源入手,gettyService的agetty提供了这样几个参数:
-o, --login-options <opts> : options that are passed to login
-n, --skip-login : do not prompt for login
-a, --auto-login <user> : login the specified user automatically
==================
-o指定login参数,其实就是执行:
login <opts>
-n使agetty跳过登录程序,直接进入shell
-a指定自动登录的用户
发现仅凭-n,-a行不通时,login参数登场
这里就用到了agetty的-o选项
login提供了这样的伪命令:
login [-p] -f username
# 在manual中是这么说的:
-f : do not perform authentication, user is preauthenticated
================
-f跳过用户验证
因此,可以在agettyService里这么写:
ExecStart=-/sbin/agetty -o '-p -f root' -n -a root --noclear %I $TERM
至此,问题解决,
agetty,login都指定了自动登录相关的选项。
转:https://zhuanlan.zhihu.com/p/86297547
标签:ExecStart,树莓,登录,--,agetty,命令行,Linux,login,root 来源: https://www.cnblogs.com/little-kwy/p/14828700.html