前言
項(xiàng)目開(kāi)發(fā)需求,需要開(kāi)機(jī)后就自動(dòng)創(chuàng)建某個(gè)用戶+密碼
廠家提供的sdk,只有adduser命令,
該命令添加用戶時(shí),會(huì)有終端交互,
需要手動(dòng)輸入2次密碼,
所以無(wú)法通過(guò)簡(jiǎn)單腳本方式創(chuàng)建。
要實(shí)現(xiàn)自動(dòng)填充密碼,可以借助工具expect,但是該工具移植還需要依賴tcl庫(kù)
外加產(chǎn)品存儲(chǔ)空間比較有限,本著能省就省原則,
彭老師選擇了另外一種方法,
就是直接修改rootfs的shadow、passwd文件。
環(huán)境
sdk:復(fù)旦微Buildroot 2018.02.3
步驟
1、adduser 手動(dòng)添加命令
在開(kāi)發(fā)板上手動(dòng)添加用戶ftp,密碼:123456
# adduser ftpadduser: /home/ftp: No such file or directoryChanging password for ftpNew password: Bad password: too weakRetype 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用戶登錄。
注意
修改用戶密碼,如果登入不了的問(wèn)題,可能和系統(tǒng)時(shí)間默認(rèn)有關(guān),系統(tǒng)時(shí)間太舊了(1970),導(dǎo)致密碼無(wú)效
所以必須用date命令手動(dòng)設(shè)置一下系統(tǒng)時(shí)間:
date -s "2024-11-23 15:12"
可以把這個(gè)命令放到系統(tǒng)自動(dòng)啟動(dòng)腳本里,開(kāi)機(jī)自動(dòng)運(yùn)行即可。
sdk\buildroot-2018.02.3\output\target\etc\init.d\rcS