嵌入式设备文件系统构建——增加用户登录功能

2023-11-09

1、修改inittab文件

#first:run the system script file
::sysinit:/etc/init.d/rcS

# 进入命令行
#::askfirst:-/bin/sh

#添加执行登录验证
::sysinit:/bin/login

::ctrlaltdel:-/sbin/reboot
#umount all filesystem
::shutdown:/bin/umount -a -r
#restart init process
::restart:/sbin/init

(1)在inittab文件中,将进入命令行的"bin/sh"注释掉,不要自动进入命令行;
(2)添加执行"/bin/login"程序,login是busybox支持的登录的命令,添加后会先要求输入用户名和密码才能进入命令行;

2、添加/etc/passwd文件

root:x:0:0:root:/root:/bin/sh

(1)passwd文件是存放登录用户信息的文件;
(2)上面的passwd文件设置了名为root的用户,用户的主目录是/root,当用户登录时会自动切换到/root目录,执行的终端是/bin/sh;

3、添加/etc/shadow文件

root::19309:0:99999:7:::

(1)shadow文件是保存用户的登录密码;
(2)上面设置root用户的密码是空,也就是不需要密码就可以登录;

4、给用户设置密码

在这里插入图片描述在这里插入图片描述

(1)当按照上面的passwd和shadow文件配置时,第一次用root账户登录时不需要密码的;
(2)在终端可以用passwd命令给root设置/修改密码;
(3)设置好密码后,再次登录就需要输入账户和密码;

5、使用getty做用户登录

#::sysinit:/bin/login
s3c2410_serial2::respawn:/sbin/getty -L s3c2410_serial2 115200 vt100 # GENERIC_SERIAL

(1)使用getty做登录程序和使用login并没有明显区别,passwd和shadow文件的设置是一模一样,两个程序都是集成到busybox里的;
(2)s3c2410_serial2:指定打印输出串口;
(3)vt100:终端的输出格式;
(4)115200 :串口的波特率;

推荐

再难的项目都是基础知识的复杂运用,基础是最重要的。给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式设备文件系统构建——增加用户登录功能 的相关文章

  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 静默检查 bash 脚本中是否存在 rpm

    我正在尝试使用 if 语句快速检查 rpm 是否安装在 bash 脚本中 但我想默默地做 目前 当我运行脚本并且 rpm 确实存在时 它将 rpm 的输出输出到我不想要的屏幕 if rpm qa grep glib then do some
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include
  • 在 bash 脚本中使用源时出现“源:未找到”错误

    我正在尝试编写 我认为的 一个简单的 bash 脚本 它将 运行 virtualenv 以 1 美元创建一个新环境 激活虚拟环境 做更多的事情 安装 django 将 django admin py 添加到 virtualenv 的路径等
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 如何使用bash脚本获取分区的偏移量?

    我可以用parted找出我的图像的偏移量 sudo parted s image img unit B print Model file Disk home user image img 107374182400B Sector size
  • 在 Bash 中替换垂直线

    我很难完成我的脚本 因为这一部分没有按照我想要的方式运行 我的脚本中有这一行 cat home tmp temp1 txt awk gsub RS gsub RS print gt home tmp temp txt 效果很好 是的 但是当
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 使用脚本从网站中提取电子邮件地址

    给定一个网站 我想知道以编程方式和 或使用脚本的最佳程序是什么 以纯文本形式提取每个页面上存在的所有电子邮件地址 电子邮件受保护 cdn cgi l email protection从该链接和下面的所有站点 递归或直到某个固定深度 使用 s
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • 检查 Git 中是否需要 pull

    如何检查远程存储库是否已更改并且需要拉取 现在我使用这个简单的脚本 git pull dry run grep q v Already up to date changed 1 但它比较重 有没有更好的办法 理想的解决方案是检查所有远程分支
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags

随机推荐

  • 2020年度总结

    眼看又要年底了 趁着这个双休 给即将过去的 2020 做个简单的总结 今年发生了很多事情 对我的影响很大 年初 2020年1月7日 我入职了上一家公司 在一个 Unity 项目组里做游戏开发 工资虽然不高 但是业务轻车熟路 也在组里涨了不少
  • 使用终端MobaXterm连接Centos

    1 下载MobaXterm 官网 https mobaxterm mobatek net download html 2 MobaXterm连接Linux 1 查看刚才安装的 Linux 的 IP 地址 2 连接 3 Linux自带了JRE
  • 【CUDA编程】线程ID与全局ID的映射关系

    blockDim 方向 指的是该方向上thread的总数 girdDim 方向 指的是该方向上block的总数 1 1D grid 1D block threadId blockIdx x blockDim x threadIdx x 2
  • 阿里巴巴Java开发手册 PDF

    泰山版 更新日期 2020 04 22 链接 https pan baidu com s 1qf252ZN1zMZ16KY ok8uNg 提取码 zxcp 嵩山版 更新日期 2020 08 03 链接 https pan baidu com
  • python与java的一些不同简录

    1 coding UTF 8 2 Python 中单行注释以 开头 多行注释采用三对单引号 或者三对双引号 将注释括起来 3 Python 最具特色的就是使用缩进来表示代码块 缩进的空格数是可变的 但是同一个代码块的语句必须包含相同的缩进空
  • 如何在IEEE的模板中引用Arxiv中的论文

    如何在IEEE的模板中引用Arxiv中的论文 本文章记录如何在IEEE Transactions的模板中 引用Arxiv中的论文 记录具体的论文格式信息 目录 如何在IEEE的模板中引用Arxiv中的论文 1 在IEEE的模板中引用Arxi
  • 匹配算法之 匈牙利算法详解

    参考 算法学习笔记 5 匈牙利算法 漫谈匈牙利算法 匈牙利算法 KM算法 匈牙利算法 二分图 通俗易懂小白入门 二分图最大匹配 匈牙利算法 多目标跟踪之数据关联 匈牙利匹配算法和KM算法 小白学习笔记 一 目标跟踪 匈牙利匹配 一 匈牙利算
  • jQuery Ajax 全解析

    本文地址 jQuery Ajax 全解析 本文作者 QLeelulu 转载请标明出处 jQuery确实是一个挺好的轻量级的JS框架 能帮助我们快速的开发JS应用 并在一定程度上改变了我们写JavaScript代码的习惯 废话少说 直接进入正
  • HBuilderX集成Git教程,需要安装TortoiseGit依赖

    1 HBuilder安装git插件 需要提前安装好git客户端 略过 点击 工具 插件安装 此时还是不能提交代码的 右键选中我们需要的项目 点击 外部命令 Git插件 然后随便选择一个操作 会提示需要安装TortoiseGit 然后跳转到T
  • 归并排序【图解及模板】

    全文目录 归并排序的思想 操作原理 归并排序演示图 代码模板 总结 归并排序的思想 归并排序是建立在归并操作上的一种有效 稳定的排序算法 该算法是采用分治法 Divide and Conquer 的一个非常典型的应用 将已有序的子序列合并
  • keil5改工程名称_Keil5建立stm32工程

    一 准备工作 1 首先在项目名称下建立一个文件夹 作为存放程序的地方 2 在总文件夹下 依次建立User Driver List Output三个文件夹 作为存放main函数 驱动函数 编译和输出文件的子文件夹 二 建立工程 1 打开kei
  • GO 依赖注入

    依赖注入是软件工程中经常使用到的一种技术 它提供了一种控制反转的机制 把控制权利交给了调用方 调用方来决定使用哪些参数 哪些对象来进行具体的业务逻辑 依赖注入的本质其实是为了将组件的创建与其依赖的创建分离 实现原理 通过反射读取对象的依赖
  • elementUi使用自定义表格时给表头自定义成el-input导致el-input失效的问题

    我们在使用elementUi的表格组件时往往需要自定义表格 很多还需要自定义表头 比如这种 我们再表格的头部插入el input组件 这时就会发现 你在表头的el input输入时不显示 解决方法就是给slot header 换成 head
  • 2023华为OD机试真题-对称字符串(JAVA、Python、C++)

    题目描述 对称就是最大的美学 现有一道关于对称字符串的美学 已知 第 1 个字符串 R 第 2 个字符串 BR 第 3 个字符串 RBBR 第 4 个字符串 BRRBRBBR 第 5 个字符串 RBBRBRRBBRRBRBBR 相信你已经发
  • Java中多线程,java栈和堆面试题

    public static void main String args 创建自定义线程对象 myThread mT new myThread 开启新线程 让新的线程执行程序 jvm调用线程中的run mT start 在main方法中执行
  • mediapipe face_mesh测试

    目录 onnx测试 tensorflow预测tflite代码 onnx测试 img path r D data val result 1212 test 1 2 02370 1 jpg img path r D data face 1212
  • Python的下载和安装教程

    今天学习python以及pycharm的下载和安装 参考了好几个博客 在此总结一下安装过程 注意 在这里说明一下 如果要用pycharm进行python的开发 是要分别下载pycharm和python的 不要只安装pycharm就结束了 一
  • 命令提示符的使用及运行Java程序

    常用的命令提示符 dir 列出当前目录下的文件以及文件夹 director md 创建目录 make director rd 删除目录 cd 进入指定目录 cd 退回到上一级目录 cd 退回到根目录 del 删除文件 del txt可以将所
  • c++11std::thread扩展

    最近 整理一下学习c 的文章 看到一篇文章 其中提到了thread local和std future 觉得这两东西很有趣 于是网上搜了一些资料 觉得很有帮助 希望可以对大家学习c 线程有所帮助 http www cnblogs com ha
  • 嵌入式设备文件系统构建——增加用户登录功能

    1 修改inittab文件 first run the system script file sysinit etc init d rcS 进入命令行 askfirst bin sh 添加执行登录验证 sysinit bin login c