加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Linux rootfs:如何開機(jī)就自動添加某個用戶?

12/17 10:50
152
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

項(xiàng)目開發(fā)需求,需要開機(jī)后就自動創(chuàng)建某個用戶+密碼

廠家提供的sdk,只有adduser命令,該命令添加用戶時,會有終端交互,需要手動輸入2次密碼,所以無法通過簡單腳本方式創(chuàng)建。

要實(shí)現(xiàn)自動填充密碼,可以借助工具expect,但是該工具移植還需要依賴tcl庫。外加產(chǎn)品存儲空間比較有限,本著能省就省原則,彭老師選擇了另外一種方法,就是直接修改rootfs的shadow、passwd文件。

環(huán)境

sdk:復(fù)旦微
Buildroot?2018.02.3

步驟

1、adduser 手動添加命令

開發(fā)板上手動添加用戶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

添加用戶之后,命令會修改文件

/etc/shadow
/etc/passwd

在這2個文件的最下面會增加用戶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)限修改這兩個文件:

    shadow

    passwd

編譯燒錄重啟,即可用ftp用戶登錄。

注意

修改用戶密碼,如果登入不了的問題,可能和系統(tǒng)時間默認(rèn)有關(guān),系統(tǒng)時間太舊了(1970),導(dǎo)致密碼無效

所以必須用date命令手動設(shè)置一下系統(tǒng)時間:

date?-s?"2024-11-23?15:12"

可以把這個命令放到系統(tǒng)自動啟動腳本里,開機(jī)自動運(yùn)行即可。

sdkbuildroot-2018.02.3outputtargetetcinit.drcS

 

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號『一口Linux』號主彭老師,擁有15年嵌入式開發(fā)經(jīng)驗(yàn)和培訓(xùn)經(jīng)驗(yàn)。曾任職ZTE,某研究所,華清遠(yuǎn)見教學(xué)總監(jiān)。擁有多篇網(wǎng)絡(luò)協(xié)議相關(guān)專利和軟件著作。精通計算機(jī)網(wǎng)絡(luò)、Linux系統(tǒng)編程、ARM、Linux驅(qū)動、龍芯、物聯(lián)網(wǎng)。原創(chuàng)內(nèi)容基本從實(shí)際項(xiàng)目出發(fā),保持原理+實(shí)踐風(fēng)格,適合Linux驅(qū)動新手入門和技術(shù)進(jìn)階。