4.6、系统登录

4.6.1、系统登录方式配置

1、系统初始化配置选择

配置路径 :

→ System configuration → Init system

配置参数说明:

BusyBox

  • 简介BusyBox 是一个非常小巧的工具集合,它提供了许多常见的 Unix 工具,并通过一个单一的可执行文件来实现。这些工具包括 shell、文件管理、网络工具等。在许多嵌入式系统中,BusyBox 被用作系统的 init 进程。

  • 特点:

    • 小巧:适用于资源有限的环境,像嵌入式设备或开发板。
    • 易于定制:可以选择只编译必要的工具,减少系统占用。
    • 高效:启动速度快,占用资源少。
    • 适用场景:广泛用于嵌入式系统、开发板等。

    选择 BusyBox 作为初始化系统意味着你会使用一个简化的初始化过程,适用于轻量级、快速启动的场景。

systemV

  • 简介SystemV 是传统的 Unix 初始化系统,早期的 Linux 系统使用的是 System V 风格的 init 系统。它通常依赖于多个脚本来启动和管理系统服务。

  • 特点:

    • 脚本驱动:服务通过 /etc/init.d/ 目录下的脚本来启动。
    • 兼容性:对于许多旧的 Linux 发行版和 Unix 系统,SystemV 是一种标准。
    • 较为繁琐:服务的管理通常通过手动启动脚本进行,较为复杂。

    选择 SystemV 表示你希望使用传统的方式来管理系统的启动过程。

OpenRC

  • 简介OpenRC 是一个轻量级的初始化系统,最初由 Gentoo Linux 开发,但现在也可以在许多其他 Linux 发行版中使用。它通过脚本和事件驱动的方式启动和管理服务。

  • 特点:

    • 轻量级:与 systemd 相比,它占用的资源较少。
    • 依赖管理:能够有效地处理服务的依赖关系。
    • 兼容性:它与 systemdSysVinit 脚本兼容。

    选择 OpenRC 可以带来一个简洁、快速的启动过程,并且它不依赖于 systemd.

systemd

  • 简介systemd 是当前许多现代 Linux 发行版的默认初始化系统。它不仅负责启动系统,还提供了大量功能来管理系统服务、日志记录、并行化启动等。

  • 特点:

    • 高效并行启动:通过并行化启动多个服务来加快系统启动速度。
  • 功能强大:包括服务管理、日志管理、网络配置等。

    • 复杂性:配置和管理相对复杂,需要学习 systemctl 命令等。

    选择 systemd 是现代 Linux 系统中最常见的选择,它能够提供强大的服务管理和系统控制功能。

None

  • 简介:选择 None 表示系统没有启用任何初始化系统。这种情况比较少见,通常用于某些非常特殊的定制环境,或者在非常简化的系统中。

  • 特点:

    • 不使用任何 init 系统:系统启动时不会通过传统的 init 系统进行服务管理。
  • 需要手动配置:没有 init 系统时,用户需要自行编写启动脚本来管理系统服务。

    选择 None 的场景较为特殊,适合对系统有完全控制需求的用户。

2、登录界面配置

配置路径 :

→ System configuration → Run a shell on serial console after boot

配置参数说明:

  • /sbin/getty (login prompt):使用 getty 提供登录提示:getty 是一个常见的程序,负责在终端上显示登录提示并启动登录程序。选择此选项会在串行终端上显示登录提示,让用户输入用户名和密码进行登录。它通常用于传统的命令行登录界面。

  • /bin/sh:启动 sh (shell):选择这个选项会在串行终端上启动一个 sh(Bash 或其他 shell),而不是显示登录提示。这意味着系统会直接提供一个 shell 提示符,用户可以直接在命令行界面进行操作,而不需要进行身份验证或登录。适用于嵌入式系统的调试或开发环境,便于直接访问系统。

  • /bin/login:使用 login 提供登录界面:这个选项会启动 login 程序,提供标准的登录界面。与 getty 相似,login 会在终端上提示用户输入用户名和密码,但它通常用于在系统启动时通过串行端口提供更为安全的登录方式。

  • none:不使用任何登录方式:如果选择此选项,则串行端口不会提供任何登录界面或 shell。这意味着如果你想通过串行端口访问系统,可能需要其他方式来启用访问,如通过网络连接等

4.6.2、用户及密码配置

文件路径 : ./board/rockchip/rk3566_rk3568/fs-overlay/etc

1、添加文件 group
root:x:0:
mo:x:1000:

用于定义系统中的用户组信息。它包含了组名、组密码(通常为空)和组成员。

root:x:0:

  • root 是组名。
  • x 表示组的密码(在大多数现代 Linux 系统中,组密码通常没有使用,因此该字段为空或为 x)。
  • 0 是组的 GID(组标识符),这里 0 代表超级用户(root)组。
  • 最后部分为空,表示该组没有成员(成员通常是其他用户的用户名,用逗号分隔)。

mo:x:1000:

  • mo 是组名。
  • x 表示组的密码。
  • 1000 是该组的 GID(对于普通用户组,一般从 1000 开始)。
  • 最后部分为空,表示该组也没有其他成员。
2、添加文件 passwd
root:x:0:0:root:/root:/bin/sh
mo:x:1000:1000:mo user:/home/mo:/bin/sh

存储系统中每个用户的基本信息,如用户名、UID、GID、家目录和默认 shell 。

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

  • root 是用户名。
  • x 表示密码字段,表示密码存储在 shadow 文件中(现代 Linux 系统使用 shadow 文件来存储密码信息,x 只是占位符)。
  • 0 是 UID(用户标识符),表示该用户是超级用户(root)。
  • 0 是 GID(组标识符),表示该用户属于 root 组。
  • root 是用户的全名或描述字段(这里是 root 用户的描述)。
  • /root 是该用户的家目录路径。
  • /bin/sh 是该用户的默认 shell(在这个例子中是 sh,可以是 bash 或其他 shell)。

mo:x:1000:1000:mo user:/home/mo:/bin/sh

  • mo 是用户名。
  • x 表示密码字段,密码信息在 shadow 文件中。
  • 1000 是 UID(这个通常分配给第一个非系统用户,表示普通用户 mo)。
  • 1000 是 GID(这个通常是用户的默认组的 GID)。
  • mo user 是该用户的描述信息。
  • /home/mo 是该用户的家目录路径。
  • /bin/sh 是该用户的默认 shell。
3、添加文件 shadow
root:$1$xyz$xxxxxxxxxxxxxx/:0:0:99999:7:::
mo:$1$xyz$xxxxxxxxxxxxxx/:0:0:99999:7:::

用于存储用户的加密密码和密码过期信息,它是 passwd 文件的补充。它只有管理员(root)权限才能访问,保证密码的安全性。

root:$1$xyz$xxxxxxxxxxxxxx/:0:0:99999:7:::

  • root 是用户名。
  • $1$xyz$xxxxxxxxxxxxxx/ 是 root 用户的加密密码。
    • $1$:表示这是使用 MD5 哈希算法加密的密码。后面的字符是密码的哈希值。
    • xyz:这是 盐值(salt)。盐值是一个用于混淆哈希过程的字符串,它的作用是让同样的密码每次加密的结果不同。盐值可以是随机生成的,通常是 8 到 16 个字符的字符串。
    • 加密后的哈希值:$1$xyz$ 后面跟着的是实际的 MD5 哈希值,这部分是加密后的用户密码。它看起来像一个随机字符串,是通过对密码和盐值进行哈希计算得到的。
  • 0 表示密码最后一次修改的日期(自 1970 年 1 月 1 日以来的天数)。这里 0 代表密码尚未设置或尚未修改。
  • 0 表示密码最小使用期限,即用户必须等待多长时间才能更改密码。这里的 0 表示没有限制。
  • 99999 表示密码最大使用期限,即密码最大有效期。99999 意味着密码永不过期。
  • 7 表示密码过期前提前多少天警告用户更改密码。这里是 7 天。

mo:$1$xyz$xxxxxxxxxxxxxx/:0:0:99999:7:::

  • mo 是用户名。
  • $1$xyz$xxxxxxxxxxxxxx/mo 用户的加密密码(与 root 用户类似,使用 MD5 哈希算法)。
  • 0 表示密码的最后修改日期。
  • 0 表示密码最小使用期限。
  • 99999 表示密码最大使用期限(永不过期)。
  • 7 表示密码到期前 7 天警告用户。
4、密码计算方式
python -c 'from crypt import crypt; print(crypt("root", "$1$xyz$"))'
5、创建用户目录
# /buildroot/board/rockchip/common/post-build.sh
# 创建 mo 用户的目录
mkdir -p /home/mo
chown mo:mo /home/mo
chmod 755 /home/mo

4.6.3、默认登录子账号

文件路径 : ./buildroot/package/busybox/busybox.mk

修改添加内容如下

ifeq ($(BR2_TARGET_SERIAL_SHELL_GETTY),y)
BUSYBOX_SERIAL_SHELL = "$(SYSTEM_GETTY_PORT)::respawn:/sbin/getty -L $(SYSTEM_GETTY_OPTIONS) $(SYSTEM_GETTY_PORT) $(SYSTEM_GETTY_BAUDRATE) $(SYSTEM_GETTY_TERM)"
else
ifeq ($(BR2_TARGET_SERIAL_SHELL_SH),y)
BUSYBOX_SERIAL_SHELL = "::respawn:-/bin/sh -f mo"
else ifeq ($(BR2_TARGET_SERIAL_SHELL_LOGIN),y)
BUSYBOX_SERIAL_SHELL = "::respawn:-/bin/login -f mo"
else
BUSYBOX_SERIAL_SHELL =
endif
https://www.yiyuanjichang.net/api/v1/client/subscribe?token=4772d11bfd3a784bdc6b198200a74eaf

十一、buildroot系统登录配置的更多相关文章

  1. Linux系统安全配置基线

    一:共享账号检查 配置名称:用户账号分配检查,避免共享账号存在 配置要求:1.系统需按照实际用户分配账号: 2.避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享. 操作指南:参考配置操 ...

  2. SAPGUI系统登录页面配置的SAProuter有什么用

    大家在安装完SAPGUI后,准备添加系统列表进行登录时,注意过这个SAProuter字段么? 从SAP的帮助文档上可以找到SAProuter的定义: https://help.sap.com/saph ...

  3. 在Mac系统上配置Android真机调试环境

    在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...

  4. linux基础-第十一单元 系统监控

    第十一单元 系统监控 系统监视和进程控制工具-top和free top命令的功能 TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序 ...

  5. Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现

    在一般的权限系统里面,可能经常会看到系统的黑名单或者白名单的拦截功能.在一般权限系统里面,常见的黑名单就是禁止用户在某些IP上登录系统,白名单就是允许用户只在某些IP上登录系统.本随笔主要介绍在我的权 ...

  6. 在window系统下配置login.sql

    在window系统下配置login.sql 他的位置是登录用户的文件夹,我的win7系统位置是: C:\Users\Administrator 我的login.sql下载地址: http://file ...

  7. VB.NET版机房收费系统---七仙女之系统登录

    VB.NET第一版机房收费系统,告一段落,验收的时候.问题也是大大的存在,没实用上设计模式,什么触发器.存储过程,都没实用上.看看其她小伙伴的,七层实现登录?那是什么东东,相比較我的三层而言,多了两倍 ...

  8. 从.Net到Java学习第十一篇——SpringBoot登录实现

    从.Net到Java学习系列目录 通过前面10篇文章的学习,相信我们对SpringBoot已经有了一些了解,那么如何来验证我们的学习成果呢?当然是通过做项目来证明啦!所以从这一篇开始我将会对之前自己做 ...

  9. Windows 10 系统,配置jdk系统环境变量

    1. 下载jdk包,下载路径为:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, ...

  10. Centos6.5之ssh免密码登录配置

    Centos6.5之ssh免密码登录配置 centos ssh 免密码登录 0.说明 这里为了方便说明问题,假设有A和B两台安装了centos6.5的主机.目标是实现A.B两台主机分别能够通过ssh免 ...

随机推荐

  1. BUUCTF---这是Base??

    题目 dict:{0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11 ...

  2. Static Timing Analysis Basics

    Preface This note only introduce the essential concepts about Static Timing Analysis, which not cont ...

  3. Javascript try catch finally

    很少用到javascript的异常捕获,突然需要,发现挺全的,小小记录下,留爪. 直接打码: //public.js //异常输出 function exception(ex) { console.l ...

  4. 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!

    前言 相信很多同学都应该用过 Everything 这个实用的 Windows 文件搜索神器吧,今天大姚给大家分享一款让 Everything 更加如虎添翼的 .NET 开源辅助工具:Everythi ...

  5. Spring Cloud Gateway网关

    一.Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求由(路由)转发到对应的微服务 网关的执行过程:当一个请求到达网关,网关利用断言,查看该请求是 ...

  6. AI浏览器自动化实战

    只需一句话,AI 即可自动操作浏览器: 搜索商品: 下单支付: 甚至还能进行深度研究(Deep Research),自动生成完整的攻略报告: Browser use 是一个开源项目,使 AI 大模型能 ...

  7. app自动化:Androiddriver操作api

    一.获取操作的api 1.currentActivity():获取当前activity 一般获取到当前activity与预期进行断言 androidDriver.currentActivity(); ...

  8. 备份一个http/https请求,用的比较多的POST json数据

    var data = new object[] { new { sn = SN, mac = Mac } }; var jobj = await Task.Run(() => { try { u ...

  9. html input 是否允许浏览器字段默认值 或者之前输入的值

    autocomplete 属性是 HTML5 中的新属性,在input中autocomplete属性是默认开启的. 1.定义:autocomplete属性规范表单是否启用自动完成功能.自动完成允许浏览 ...

  10. 使用IDEA构建SpringBoot应用镜像

    目录 前置设置 编写Dockerfile文件 添加运行配置 前置设置 确保IDEA已经设置了服务器Docker的信息.[1] 确保您有可运行的SpringBoot项目 编写Dockerfile文件 D ...