第九周作业—N42-虚怀若谷
一、编写脚本,接收二个位置参数,magedu和/www,判断系统是否有magedu,如果没有则自动创建magedu用户,并自动设置家目录为/www
[root@centos7 data]# cat user.sh
#!/bin/bash user=$ [ $# -ne ] && echo "Usage: $0 user homedir" && exit if [[ $ =~ ^(\/.*) ]];then
homedir=$
else
echo "The homedir must be a directory"
exit
fi if id $user &> /dev/null ; then
echo "$user is exist"
exit
else
useradd -m -d $homedir $user
[ $? -eq ] && echo "$user create success"
fi
[root@centos7 data]# bash user.sh
Usage: user.sh user homedir
[root@centos7 data]# bash user.sh magedu www
The homedir must be a directory
[root@centos7 data]# bash user.sh magedu /www
magedu create success
二、使用expect实现自动登录系统
[root@centos7 data]# cat expect.sh
#!/bin/bash ip=$
user=$
password=$ expect << EOF
set timeout
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "$password\n"}
}
expect "]#" {send "ls\n"}
expect "]#" {send "exit\n"}
expect eof
EOF
[root@centos7 data]# bash expect.sh 192.168.214.27 root root
spawn ssh root@192.168.214.27
root@192.168.214.27's password:
Last login: Tue Dec :: from 192.168.214.17
[root@centos7- ~]# ls
anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates
Desktop Downloads Music Public Videos
[root@centos7- ~]# exit
logout
Connection to 192.168.214.27 closed.
三、简述linux操作系统启动流程
1. 计算机加电自检
当给计算机通电后,其主板上的COMS芯片会执行BIOS(Basic Input and Output System)上的程序,程序会对其硬件信息去检查是否存在以及是否能够正常工作,最后初始化硬件。
2. 加载bootloader
根据启动顺序找到第一个可以启动的磁盘,加载其MBR中的BootLoader,MBR共有512个字节,前446个字节为bootloader主程序,中间64个字节为分区表,最后2个字节为硬盘有效标志(55AA),此时又分为三个阶段:
stage1: 加载Bootloader的主程序用于加载stage 1.5的代码;
stage1.5:由于stage1识别不了文件系统,也就无法加载内核,stage1_5作为stage1和stage2中间的桥梁,stage1_5有识别文件系统的能力,让statge1中的bootloader能够识别stage2所在的分区文件系统;
stage2:当stage2被载入内存执行时,它首先会去解析grub的配置文件/boot/grub/grub.conf中的Kernel的信息,然后将Kernel加载到内存中运行,当Kernel程序被检测并在加载到内存中,GRUB就将控制权交接给了Kernel程序。
3. 内核初始化
此阶段主要是探测可识别的硬件,加载硬件驱动,切换根分区(挂载rootfs),运行系统第一个进程init进程初始化系统
4. 系统初始化
此阶段主要是初始化软件运行环境,它会读取配置文件/init/inittab (centos5和6) 或者 systemd (centos7) 读取默认运行级别,然后运行该默认级别下的脚本,启停默认级别下定义的服务 (centos7采用systemd来启停服务,centos6是采用init进程来启停服务),最后登录终端。
四、破解centos7密码
1. 启动时按任意键暂停启动

2. 按 e 键进入编辑模式,将光标移至linux16开始的行,添加内核参数 rd.break

3. 按 Ctrl+x 启动,进入紧急模式

4. 以读写方式重新挂载/sysroot,mount -o remount,rw /sysroot

5. 切换根,chroot /sysroot

6. 修改root密码

7. 创建安全标签,touch /.autorelabel(SELinux需要,如已禁用,可不操作)

8. 退出根,exit ,并重启系统,reboot

第九周作业—N42-虚怀若谷的更多相关文章
- 2018-2019-1 20189221 《Linux内核原理与分析》第九周作业
2018-2019-1 20189221 <Linux内核原理与分析>第九周作业 实验八 理理解进程调度时机跟踪分析进程调度与进程切换的过程 进程调度 进度调度时机: 1.中断处理过程(包 ...
- 2017-2018-1 20179205《Linux内核原理与设计》第九周作业
<Linux内核原理与设计>第九周作业 视频学习及代码分析 一.进程调度时机与进程的切换 不同类型的进程有不同的调度需求,第一种分类:I/O-bound 会频繁的进程I/O,通常会花费很多 ...
- 2019-2020-1 20199325《Linux内核原理与分析》第九周作业
第九周作业要求: 理解Linux系统中进程调度的时机,可以在内核代码中搜索schedule()函数,看都是哪里调用了schedule(),判断我们课程内容中的总结是否准确: 使用gdb跟踪分析一个sc ...
- 2019-2020-1 20199329《Linux内核原理与分析》第九周作业
<Linux内核原理与分析>第九周作业 一.本周内容概述: 阐释linux操作系统的整体构架 理解linux系统的一般执行过程和进程调度的时机 理解linux系统的中断和进程上下文切换 二 ...
- 2020-2021-1 20209307 《Linux内核原理与分析》第九周作业
这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)> 这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第九周作业> 这个作业的目标 & ...
- 2017-2018-2 1723《程序设计与数据结构》第九周作业 & 第二周结对编程 总结
作业地址 第九次作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1878 (作业界面已评分,可随时查看,如果对自己的评分有意 ...
- 20169207《Linux内核原理与分析》第九周作业
第九周的实验依旧和往常的一样,主要包括两部分.一是1.阅读学习教材「Linux内核设计与实现 (Linux Kernel Development)」第教材第13,14章.二是学习MOOC「Linux内 ...
- 201621123062《java程序设计》第九周作业总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 思维导图1:(对集合部分做了一些改动和细化) 思维导图2:(泛型) 1.2 选做:收集你认为有用的代码片段 代 ...
- 2019春第九周作业Compile Summarize
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 这里 我在这个课程的目标是 能更加进一步的够熟练掌握指针的用法 这个作业在那个具体方面帮助我实现目标 能解更多的题 参考文献与网址 C语言 ...
- 2019-2020-1 20199301《Linux内核原理与分析》第九周作业
第八章 进程的切换和系统的一般执行过程 进程的调度实际与进程的切换 ntel定义的中断类型 硬中断:就是CPU的两根引脚(可屏蔽中断和不可屏蔽中断) 软中断/异常:包括除零错误.系统调用.调试断点等在 ...
随机推荐
- Django开发—如何重置migration
情景一:不需要原有的数据库数据 删除数据库所有的表删除项目的migration模块中的所有 文件,除了init.py 文件执行脚本 python3 manage.py makemigrations p ...
- 爬取网易云音乐评论!python 爬虫入门实战(六)selenium 入门!
说到爬虫,第一时间可能就会想到网易云音乐的评论.网易云音乐评论里藏了许多宝藏,那么让我们一起学习如何用 python 挖宝藏吧! 既然是宝藏,肯定是用要用钥匙加密的.打开 Chrome 分析 Head ...
- spring+redis实例(二)
这一篇redis实例是基于序列化储存-(写入对象,读取对象) 在spring+redis(一)中我们介绍了在spring中怎么去操作储存redis,基于string的储存,今天我们介绍一下redis基 ...
- P1142轰炸
这是uva上的一道模拟题. 首先给出n(n<=700)个点的坐标(坐标在1*10^9)之内,询问走直线可以经过的点数.一开始我想到了一个类似于桶排序的方法来存坐标,但是要注意数组大小啊!第二次想 ...
- 实例学习——爬取Pexels高清图片
近来学习爬取Pexels图片时,发现书上代码会抛出ConnectionError,经查阅资料知,可能是向网页申请过于频繁被禁,可使用time.sleep(),减缓爬取速度,但考虑到爬取数据较多,运行时 ...
- webpack入门学习手记(一)
本人微信公众号:前端修炼之路,欢迎关注. 之前用过gulp.grunt,但是一直没有学习过webpack.这两天刚好有时间,学习了下webpack.webpack要想深入研究,配置的东西比较多,网上的 ...
- 安装ELK平台 7.3.0版本
0. 事前准备工作 0.1 防火墙 若是使用公网IP的话可以考虑关闭防火墙,或者放行相应端口 使用内网IP的话可以不用管防火墙 0.2 关闭SElinux # setenforce 0 文件:/etc ...
- IDEA配置远程git仓库
一,在项目创建本地仓储 2,选择当前文件夹为本地仓储 3, 将代码添加到本地仓库 4,提交到本地仓库 5,提交到本地仓库 配置远程账号和地址 输入你自己的远程仓库----码云或者github,创建的 ...
- 定义Vue-router的动态路由,获取传过来的动态参数
设置:在router目录下的index.js文件中,对path属性加上/:id 获取:使用router对象的params.id
- HTTPS加密原理与过程
HTTPS加密原理与过程 HTTP 超文本传输协议一种属于应用层的协议 缺点: 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文的完整性,所以有可能已遭篡 ...