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