当前位置: 首页 > news >正文

Linux rootfs:如何开机就自动添加某个用户?

前言

项目开发需求,需要开机后就自动创建某个用户+密码

厂家提供的sdk,只有adduser命令,

该命令添加用户时,会有终端交互,

需要手动输入2次密码,

所以无法通过简单脚本方式创建。

要实现自动填充密码,可以借助工具expect,但是该工具移植还需要依赖tcl库

外加产品存储空间比较有限,本着能省就省原则,

彭老师选择了另外一种方法,

就是直接修改rootfs的shadow、passwd文件。

环境

sdk:复旦微
Buildroot 2018.02.3

步骤

1、adduser 手动添加命令

在开发板上手动添加用户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相关信息。

  • /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用户登录。

注意

修改用户密码,如果登入不了的问题,可能和系统时间默认有关,系统时间太旧了(1970),导致密码无效


所以必须用date命令手动设置一下系统时间:

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

可以把这个命令放到系统自动启动脚本里,开机自动运行即可。

sdk\buildroot-2018.02.3\output\target\etc\init.d\rcS

相关文章:

  • 【C++】异常
  • 基于Canvas和和原生JS实现俄罗斯方块小游戏
  • torch.cat 函数介绍
  • 自然语言处理:Transformer、BERT
  • 数据结构(顺序表)
  • 基于PaddleNLP使用DeepSeek-R1搭建智能体
  • SpringBoot与Sentinel整合,解决DDoS攻击与异常爬虫请求问题
  • 系统思考与问题诊断
  • 【求100-200之间的素数】
  • 支持向量简要理解
  • AF3 squeeze_features函数解读
  • 高效运行 QwQ-32B + 错误修复
  • Ubuntu 下 Docker 企业级运维指南:核心命令与最佳实践深度解析20250309
  • AI Copilot——维新派的贾维斯,守旧派的墓志铭(程序员视角)
  • Synchronized 锁升级过程
  • 推荐一些免费开源支持Vue3甘特图组件
  • Python批量将中文文件名称转为英文、拼音的方法
  • 《基于深度学习的图像修复技术研究与应用-图像修复》—3000字论文模板
  • C++之“string”类的模拟实现
  • 二叉树中的深搜
  • 嘴巴总是发干,喝水也不管用?小心是这几种疾病的警报
  • 四川省外卖骑手接单将不再强制要求上传健康证
  • 上海重大工程一季度开局良好,城乡融合类年内计划新开工一项
  • 又是“9+2”复式票,浦东退休阿姨擒大乐透1153万头奖
  • 63岁微波遥感领域著名专家李春升参加学术会议期间病逝
  • 电子凭证会计数据标准推广至全国