項(xiàng)目開發(fā)需求,需要開機(jī)后就自動(dòng)創(chuàng)建某個(gè)用戶+密碼
廠家提供的sdk,只有adduser命令,該命令添加用戶時(shí),會(huì)有終端交互,需要手動(dòng)輸入2次密碼,所以無法通過簡單腳本方式創(chuàng)建。
要實(shí)現(xiàn)自動(dòng)填充密碼,可以借助工具expect,但是該工具移植還需要依賴tcl庫。外加產(chǎn)品存儲(chǔ)空間比較有限,本著能省就省原則,彭老師選擇了另外一種方法,就是直接修改rootfs的shadow、passwd文件。
環(huán)境
sdk:復(fù)旦微
Buildroot?2018.02.3
步驟
1、adduser 手動(dòng)添加命令
在開發(fā)板上手動(dòng)添加用戶ftp,密碼:123456
#?adduser?ftp
adduser:?/home/ftp:?No?such?file?or?directory
Changing?password?for?ftp
New?password:?
Bad?password:?too?weak
Retype?password:?
passwd:?password?for?ftp?changed?by?root
添加用戶之后,命令會(huì)修改文件
/etc/shadow
/etc/passwd
在這2個(gè)文件的最下面會(huì)增加用戶ftp相關(guān)信息。
- /etc/shadow
#?cat?/etc/shadow
…………
ftp:$1$AQb2UA9p$mX8fQskQJcHm0t4QlVk4A1:0:0:99999:7:::
- /etc/passwd
#?cat?/etc/passwd
…………
ftp:x:1000:1000:Linux?User,,,:/home/ftp:/bin/sh
2、將用戶信息配置到rootfs
將該信息添加到廠家提供的sdk的buildroot目錄下:
/home/peng/xxx/work/xxx/sdk/buildroot-2018.02.3/output/target/etc
peng@ubuntu:~/work/xxx/sdk/buildroot-2018.02.3/output/target/etc$?ls?passwd?shadow?-l
-rwxr--r--?1?peng?peng?339?Nov?15?17:24?passwd
-rwx------?1?peng?peng?242?Nov?15?17:24?shadow
用管理員權(quán)限修改這兩個(gè)文件:
- shadow
- passwd
編譯燒錄重啟,即可用ftp用戶登錄。
注意
修改用戶密碼,如果登入不了的問題,可能和系統(tǒng)時(shí)間默認(rèn)有關(guān),系統(tǒng)時(shí)間太舊了(1970),導(dǎo)致密碼無效
所以必須用date命令手動(dòng)設(shè)置一下系統(tǒng)時(shí)間:
date?-s?"2024-11-23?15:12"
可以把這個(gè)命令放到系統(tǒng)自動(dòng)啟動(dòng)腳本里,開機(jī)自動(dòng)運(yùn)行即可。
sdkbuildroot-2018.02.3outputtargetetcinit.drcS