分析根文件系统中的用户登录(主要涉及/etc/profile、/etc/intttab、/etc/passwd和/etc/shadow等文件)

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

一、简单分析/etc/profile文件

1、何时被调用

这个文件直接或者间接地被/linuxrc文件调用。

2、文件简介

(1)busybox源码中的/examples/bootfloopy/etc/profile文件内容过于简单,不适合作为根文件系统的/etc/profile文件,所以从零开始构建根文件系统对其进行修改。

(2)简单修改后的/etc/profile文件内容如下。

# Ash profile
# vim: syntax=sh# No core files by default
ulimit -S -c 0 > /dev/null 2>&1USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATHHOSTNAME=`/bin/hostname`export USER LOGNAME PS1 PATH

(3)注意上面使用了bin/hostname这个命令,因此需要先将使用busybox生成的bin目录拷贝到根文件系统文件夹中。另外根据分析根文件系统中的etc/init.d/rcS文件,我们需要先创建主机名配置文件/etc/sysconfig/HOSTNAME,然后在里面输入主机名(比如“xjh”)。

二、添加用户登录功能(涉及/etc/intttab、/etc/passwd和/etc/shadow文件)

1、为何添加用户登录功能

在根文件系统添加上述的/etc/profile文件后,系统启动后命令行前面会显示“[@xjh ]#”,这表明profile文件已经起作用,因为hostname已经显示出来。但是“[xxx@xjh]#”中的“xxx”这个用户登录名没有显示,这是因为我们直接进入命令行而没有做登录。要显示登录用户名,需要添加用户登录功能。


2、如何添加用户登录功能

(1)在/etc/intttab文件中有一个配置项“::askfirst:-/bin/sh”,它表示系统启动后,如果按回车就执行/bin/sh,执行这个就会出现命令行,从而不会出现登录界面。要出现登录界面,系统启动后不能直接执行/bin/sh,而应该执行一个负责出现登录界面并且负责管理用户名和密码的一个程序。

(2)busybox集成了该程序,即/bin/login或者/sbin/gettty。只要在inittab文件中用/bin/login替代/bin/sh,则系统启动后出现登录界面。

::sysinit:/etc/init.d/rcS
#::respawn:-/bin/sh    #注释掉这个
::respawn:-/bin/login  #启用这个
#console::askfirst:-/bin/sh
#tty2::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r

3、为root用户设置密码

(1)上述步骤之后系统启动时可以输入用户名和密码,但是无论输入什么都提示错误,这是因为根本就没有为root用户设置密码造成的。因此我们需要为root用户设置密码。

(2)linux系统中用来描述用户名和密码的文件是passwd和shadow文件,passwd文件中存储的是用户的密码设置,shadow文件中存储的是加密后的密码。

(3)我们将ubuntu系统的/etc/passwd和/etc/shadow文件,复制到根文件系统的目录中,然后再做修改即可。假设只有root用户,则每个文件都只保留root的内容。详细修改步骤见博文从零开始构建根文件系统的第二节第3点的步骤3。

(4)注意,ubuntu刚装好时默认使用普通用户登录,无法用root用户登录,这是因为root用户在/etc/shadow文件中加密口令是空白的。普通用户的密码是在装系统时设置的,普通用户登陆后可以使用“su passwd root”给root用户设置密码,设置密码后,root用户才可以登录。但busybox中没有普通用户,因此如果root用户的加密口令是空的,则默认无密码直接登录。登陆了之后可以用“passwd root”给root用户设置密码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VirtualBox 扩展虚拟硬盘容量

为什么80%的码农都做不了架构师?>>> 扩展步骤:第一步:修改硬盘镜像文件 1、虚拟机关机. 2、确认虚拟机使用文件(后缀为.vdi的文件)路径不带中文字符. 3、Windows 下按:Windows R,调出命令行工具…

jquery控制css的display(控制元素的显示与隐藏)

使用jquery控制div的显示与隐藏: $("#div的id").show()表示display:block, $("#div的id").hide()表示display:none; $("#id").toggle()切换元素的可见状态:如果元素是可见的,切换为隐藏的;如果元素是隐藏的&am…

制作ext2格式的根文件系统镜像

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 1、首先验证文件夹形式的rootfs是否可用 设置bootargs为nfs启动方式,然后使用在ubuntu中做好的文件夹形式的rootfs来启动,查看启动效果,作为将来用ext2格式的root…

技术和赚钱真的冲突吗?

前几天在微信上看到篇文章,讲述的是大悲寺和少林寺的对比。原文的大意是大悲寺如何如何清苦,烧香不许客户投钱。而少林寺如何的肥头大耳,尤其是方丈释永信是多么多么的会“敛财“。(注意:我们这里抛去一些“确实是敛财…

构造和运行模块

作者:蔡伦辉写在前面作者一直支持GPL的精神。允许任何人自由使用、转载、复制和再分发,但必须保留作者署名,必须保证全文完整转载,包括完整的版权声明。由于作者水平有限,因此不能保证文章内容准确无误,请批…

分析与构建根文件系统中的/lib目录

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 由根文件系统的目录结构_天糊土的博客-CSDN博客可知,/lib目录在根文件系统中也是不能省略的。该目录存放着操作系统中的动态和静态链接库文件。我们构建/lib目录,主要工作是是…

优化小技巧——复杂属性对象的read模式

本帖最后由 Aone 于 2013-7-27 12:23 编辑想必Rectangle或者Point这样的数据类在我们的程序中特别是当前的游戏中是非常常用的类型。那么一些类中获取这些属性的时候为了封装,往往会写一个get函数return一个复制的Rectangle对象给外部。目的是为了防止被获取内部rec…

从零开始构建根文件系统

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 参考博客 Uboot和系统移植(19)------- 根文件系统构建过程详解_big__C的博客-CSDN博客 一、总结 (1)本节在前面的理论分析的基础上,我们开始从零开…

Perl常用语法记录

Perl常用语法记录##包的切换和调用其它包的方式 #package A; #my $a10;#package B; #print $A::a; #print $a;##local局部标识符的使用 #$aa20; #{ # local $aa; # $aa10; # print "$aa \n"; # #}#print $aa;##别名的使用 comment $b10; $a1; $c200; {local *b;*b*a…

关于uboot的简介——uboot常用的命令

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 linux终端设计有3种缓冲机制:无缓冲、行缓冲、全缓冲。 uboot提供类似linux终端的行缓冲命令行。当我们向终端命令行输入命令的时候,这些命令没有立即被系统识别&#xff0c…

网站分析

网网站分析(Web Analytics) 是种网站访客行为的研究。于商务应用背景来说,网站分析特别指的是来自某网站搜集来的资料之使用,以决定网站布局是否符合商业目标;例如,哪个登陆页面(landing page)比较容易刺激顾客购买欲。这些搜集来…

关于uboot的简介——uboot常见的环境变量

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 如何理解环境变量呢?环境变量就好像程序的全局变量一样。程序中任何地方都可以根据需要去调用或者更改环境变量(一般都是调用),环境变量和全局变量不同…

奋战杭电ACM(DAY9)1013

Digital Roots #include <iostream> #include <string> using namespace std;int main() {string s;//溢出神烦哈&#xff01;int m,n,i;while(cin >> s){ m0;if(s[0]0) break;for(i0; s[i]!\0; i)ms[i]-0;//转换为int&#xff0c;巧妙&#xff01;n ((m%…

工作两个月的感受随笔

转眼之间&#xff0c;已经离毕业三个月了&#xff0c;在格力凌达工作了近两个月&#xff0c;在这边的主要感受有&#xff1a;两不会&#xff1a;这也不会&#xff0c;那也不会。经过两个月的工作&#xff0c;学习&#xff0c;努力的学习WMS&#xff0c;MES&#xff0c;GW等系统…

BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会 树形DP

[Usaco2010 Mar]gather 奶牛大集会 Bessie正在计划一年一度的奶牛大集会&#xff0c;来自全国各地的奶牛将来参加这一次集会。当然&#xff0c;她会选择最方便的地点来举办这次集会。每个奶牛居住在 N(1<N<100,000) 个农场中的一个&#xff0c;这些农场由N-1条道路连接&a…

关于uboot的简介——uboot对Flash与DDR的管理

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、uboot阶段对Flash的分区 所谓分区&#xff0c;即对存储设备进行分块管理。 PC机等产品中&#xff0c;整个硬盘由操作系统统一管理&#xff0c;其使用文件系统帮我们管理硬盘空间&#xff0c;从而…

EF部署

2019独角兽企业重金招聘Python工程师标准>>> 部署 当应用程序使用EF后&#xff0c;可以通过Visual Studio来进行部署&#xff0c;即将数据库部署到真实环境中&#xff0c;可以作为正式上线使用环境。在进行部署前&#xff0c;我们也需要先做一些先前准备工作&#x…

1837Balance

看了题解的&#xff0c;有个高手跟我说这道题目要用到dp统计&#xff0c;把原点偏移&#xff0c;即把不能表示的部分移到能够表示的区域。这个想法可能是用在-7500那里 我的一开始的想法是dp[i][j] 其中i表示i码&#xff0c;j表示j钩&#xff0c;dp表示是否平衡&#xff0c;但…

uboot源码——根目录下的Makefile文件分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 uboot来源于uboot官网&#xff0c;或者SoC官方&#xff08;研发s5pv210这款芯片的公司推出的开发板叫SMDKV210&#xff09;&#xff0c;或者具体开发板的官方&#xff08;深圳市九鼎科技公司推出的…

linux(虚拟机中)与windows共享文件两种方法

Windows 下用 SourceInsight 与 Linux 协作编码习惯了用SourceInsight 读写代码&#xff0c;在Linux下一时没找到类似的工具&#xff0c;vi的操作也不熟&#xff0c;偶尔看看或小改动代码还行&#xff0c;项目一大就感觉就力不从心了&#xff1b;所以还是准备采用Windows下进行…