击左上方蓝色“一口Linux”,选择“设为星标”
第一时间看干货文章 ☞【干货】嵌入式驱动工程师学习路线 ☞【干货】Linux嵌入式知识点-思维导图-免费获取 ☞【就业】一个可以写到简历的基于Linux物联网综合项目 ☞【就业】找工作简历模版
项目开发需求,需要开机后就自动创建某个用户+密码
厂家提供的sdk,只有adduser命令,
该命令添加用户时,会有终端交互,
需要手动输入2次密码,
所以无法通过简单脚本方式创建。
要实现自动填充密码,可以借助工具expect,但是该工具移植还需要依赖tcl库
外加产品存储空间比较有限,本着能省就省原则,
彭老师选择了另外一种方法,
就是直接修改rootfs的shadow、passwd文件。
sdk:复旦微
Buildroot 2018.02.3
在开发板上手动添加用户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相关信息。
# cat /etc/shadow
…………
ftp:$1$AQb2UA9p$mX8fQskQJcHm0t4QlVk4A1:0:0:99999:7:::
# cat /etc/passwd
…………
ftp:x:1000:1000:Linux User,,,:/home/ftp:/bin/sh
将该信息添加到厂家提供的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
用管理员权限修改这两个文件:
编译烧录重启,即可用ftp用户登录。
修改用户密码,如果登入不了的问题,可能和系统时间默认有关,系统时间太旧了(1970),导致密码无效
所以必须用date命令手动设置一下系统时间:
date -s "2024-11-23 15:12"
可以把这个命令放到系统自动启动脚本里,开机自动运行即可。
sdk\buildroot-2018.02.3\output\target\etc\init.d\rcS
end
一口Linux
关注,回复【1024】海量Linux资料赠送
精彩文章合集
文章推荐