linux只允许从ttyS0设备登录,linux自动以root登录,并自动启动用户程序的设置方...
第一步:刪除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
總結
以上是生活随笔為你收集整理的linux只允许从ttyS0设备登录,linux自动以root登录,并自动启动用户程序的设置方...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 聊聊毕业设计系列 --- 系统实现
- 下一篇: linux环境下配置虚拟主机域名,Lin