linux tty终端设备自动配置为 console
1:linux系统启动加载完启动服务后,开始让用户登录。登录方式有三种:命令行登录、ssh登录、图形界面登录。
2:命令行登录流程
init进程调用getty,getty 打开tty,为login name显示提示信息,把login name传给启动的 /bin/login 程序,密码由login程序校验。
如果密码正确,login程序加载/etc/passwd文件,得到用户对应的UID\GID\shell 路径等,启动login shell程序。
3:getty -w选项含义
-w 选项意思是 在显示提示信息输入login name前 等待 用户输入 CR回车或LF换号字符。
4:把串口终端设备配置为console实现
需要在 /etc/inittab文件里添加 S:023456:respawn:/sbin/getty -w -L ttyHSL0 115200 console
5:在init进程启动的服务里设置console 登入 用户名和密码,这个服务可以是一个启动shell脚本
set_passwd()
{
echo "用户名:密码" > /tmp/tmppw
chpasswd < /tmp/tmppw
rm -rf /tmp/tmppw
}
6:chpasswd 命令
从标准输入STDIN读取user:password,对密码进行DES或MD5加密后更新到 /etc/passwd。但是passwd对所有用户都是可读的,有安全隐患。
所以使用了shadow技术即把加密后的密码保存到/etc/shadow文件,只有超级用户拥有该文件读权限,保证了用户密码的安全性。
7:参考引用
https://www.cnblogs.com/deverz/p/8718672.html inittab文件解析
https://cloud.tencent.com/developer/article/1094887?from=information.detail.linux getty命令参数 Linux 的启动流程
https://www.cnblogs.com/Jtianlin/p/4354346.html /etc/passwd文件解析