一、 编写脚本,接受二个位置参数,magedu和/www,判断系统是否有magedu,如果没有则自动创建magedu用户,并自动设置家目录为/www
编写脚本vim mage.sh
每次的战役都需要勇气和奇迹(第九周)_第1张图片
执行脚本bash mage.sh
每次的战役都需要勇气和奇迹(第九周)_第2张图片
二、 使用expect实现自动登录系统。
yum provides */expect
yum install expect-5.45-12.el7.x86_64
vim example.expect
每次的战役都需要勇气和奇迹(第九周)_第3张图片
chmod u+x example.expect
./example.expect 192.168.1.17 22 mage ***@123
每次的战役都需要勇气和奇迹(第九周)_第4张图片
三、 简述linux操作系统启动流程
第一步:加载BIOS信息。包括CPU的相关信息,设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等。开机时将ROM中的指令将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启动设备来启动。
第二步:读取MBR。硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,其中前446字节为主引导记录,后64字节为分区表信息,最后2个字节为对应的校验。系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。被复制到物理内存的内容就是Boot Loader,那就是lilo或者grub了
第三步:Boot Loader。 BootLoader就是操作系统内核运行之前运行的一段小程序。bootloader供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,解压、展开,而后把系统控制权移交给内核。
第四部:加载内核。根据Grub设定的内核映像所在路径。系统读取内存映像来解压缩内核,同时还会加载内核所需的驱动程序文件,从而对内核进行挂载以及驱动根文件系统。initrd,它在stage2这个步骤就被拷贝到内存中,这个文件时在安装系统时产生的,时一个临时的根文件系统(rootfs)。因为kernel为了精简,只保留了最基本的模块,因此kenerl上没有各种硬件的驱动程序,也就无法识别rootfs所在的设备,故产生了initrd这个文件,该文件装载了必要的驱动模块,当Kernel启动时,可以从initrd文件中装载驱动模块,直到挂载真正的rootfs,然后将Initrd从内存中移除。
第五步:内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并根据此文件来进行初始化工作。其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式时“:id:5:initdefault”,这就表明Linux需要运行在等级5上。
第六步:init进程执行rc.sysinit在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,包括设定PATH,网络,启动swap分区,设定/proc等
第七步:启动系统内核模块,执行不同运行级别的脚本程序。具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来转载内核模块。根据运行级别的不同,系统会运行rc0.d到rc6.d中相应的脚本程序,来完成相应的初始化工具和启动相应的服务。
第八步:执行/etc/rc.d/rc.local
第九步:启动mingetty,进入系统登陆界面。执行/bin/login程序,等待用户登陆。
四、 破解centos7 密码
1、启动时任意键暂停启动,按e键进入编辑模式;将光标移动linux16开始的行,添加内核参数rd.break,按ctrl-x启动;
每次的战役都需要勇气和奇迹(第九周)_第5张图片
2、重新挂载根mount -o remount,rw /sysroot;chroot /sysroot;echo mage|passwd –stdin root;touch /.autorelabel;exit;exit那么重置密码即完成了。
每次的战役都需要勇气和奇迹(第九周)_第6张图片