返回顶部

第九周作业—N42-虚怀若谷

一、编写脚本,接收二个位置参数,magedu和/www,判断系统是否有magedu,如果没有则自动创建magedu用户,并自动设置家目录为/www

[root@centos7 data]# cat user.sh 
#!/bin/bash

user=$1

[ $# -ne 2 ] && echo "Usage: $0 user homedir" && exit 1

if [[ $2 =~ ^(\/.*) ]];then
   homedir=$2
else
   echo "The homedir must be a directory"
   exit 2
fi

if id $user  &> /dev/null ; then
   echo "$user is exist"
   exit 3
else
   useradd -m -d $homedir $user
   [ $? -eq 0 ] && 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=$1
user=$2
password=$3

expect << EOF
set timeout 20
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 24 10:42:01 2019 from 192.168.214.17
[root@centos7-27 ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos
[root@centos7-27 ~]# 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

posted @ 2019-12-24 11:48  hovin  阅读(267)  评论(0编辑  收藏  举报