第一步:删除root用户
vi /etc/passwd
该文件的第一行:root:X:0:0:root:/root:/bin/bash,只需要把第二个字段X删除就可以。变为: root::0:0:root:/root:/bin/bash
vi /etc/shadow
该文件的第一行:root:!^*@(*&:0:99999:7::1,只需要把第二个字段删除就可以。变为: root::14125:0:99999:7::1 至此,就把root用户的密码删除了。
第二步:在系统启动时自动以root用户登录
1:2345:raspawn:/sbin/getty 38400 tty1 (用/sbin/mingetty来启动终端,tty1表启动的终端号)
修改tinylogin里getty.c里的源码char *logname = "root";替换掉tinylogin执行文件
这样,系统启动时就会以root用户自动登录,而不需要手动输入用户名。
第三步:系统刚启动时,用户主目录为/root ,要把系统启动是要自动启动的程序放在此目录下。
第四步:在配置文件中添加自动启动的程序(main是要自动启动的程序)
vi /root/.profile 在此文件的末尾添加 /root/main即可
针对IMX6的系统是如下解决的,并且不影响CTRL+C:
在/home/root创建login.sh文件
#!/bin/sh
/bin/login -f root
在etc/init.d/rc_mxc.S文件按照如下修改
if grep -sq ttymxc0 /proc/cmdline; then
/sbin/getty -n -l /home/root/login.sh ttymxc0 115200 vt100
elif grep -sq ttymxc1 /proc/cmdline; then
/sbin/getty -L ttymxc1 115200 vt100
elif grep -sq ttymxc2 /proc/cmdline; then
/sbin/getty -L ttymxc2 115200 vt100
elif grep -sq ttymxc3 /proc/cmdline; then
/sbin/getty -L ttymxc3 115200 vt100
else
sleep 100000
fi
参考:https://blog.csdn.net/asmxpl/article/details/21701473
使用关键字 sysvinit, 加上前面的错误信息, 发现人家都是使用 getty.于是修改inittab respawn 一行如下:
T0:2345:respawn:/sbin/getty-L ttyS2 115200 vt100
此时登录时需要帐号,密码, 但是ctrl-c 可以正常工作。
开始研究 getty 自动登录, 从:
http://forum.ubuntu.org.cn/viewtopic.php?f=86&t=88847&start=0
得到答案:
修改inittab respawn 一行
T0:2345:respawn: /sbin/getty -n -l /bin/autologin 115200 ttyS2 vt100
并创建可执行文件:/bin/autologin
#!/bin/sh
/bin/login -f root