第九周作业

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

 

 1 脚本代码:
 2 
 3 #!/bin/bash
 4 #
 5 
 6 if [ "$1" == "mageedu" -a "$2" == "/www" ];then
 7         if grep "^$1\>" /etc/passwd &> /dev/null;then
 8                 echo "User $1 exists."
 9         else
10                 useradd -d $2 $1
11                 echo $1 | passwd --stdin $1 &> /dev/null
12                 echo useradd $1 finished.
13         fi
14 else
15         echo "Give two args : "mageedu"  "/www""
16         exit 2
17 fi
18 
19 测试脚本:
20 
21 给定错误参数执行:
22 
23 [root@db01 scripts]# bash -x usertest.sh mageedu
24 + '[' mageedu == mageedu -a '' == /www ']'
25 + echo 'Give two args : mageedu  /www'
26 Give two args : mageedu  /www
27 + exit 2
28 
29 给定正确参数执行:
30 
31 [root@db01 scripts]# bash -x usertest.sh mageedu /www
32 + '[' mageedu == mageedu -a /www == /www ']'
33 + grep '^mageedu\>' /etc/passwd
34 + useradd -d /www mageedu
35 + echo mageedu
36 + passwd --stdin mageedu
37 + echo useradd mageedu finished.
38 useradd mageedu finished.
39 
40 用户mageedu存在时,执行脚本:
41 
42 [root@db01 scripts]# bash -x usertest.sh mageedu /www
43 + '[' mageedu == mageedu -a /www == /www ']'
44 + grep '^mageedu\>' /etc/passwd
45 + echo 'User mageedu exists.'
46 User mageedu exists.

 

2、使用expect实现自动登录系统。

 

 1 安装expect:
 2 
 3 [root@db01 scripts]# yum install expect -y
 4 
 5 编写自动登入程序:
 6 
 7 [root@db01 scripts]# vim expect.sh
 8 #!/usr/bin/expect
 9 #
10 
11 set timeout 20
12 spawn ssh root@192.168.0.120
13 expect "*password*"
14 send "P@ssw0rd\r"
15 interact
16 
17 添加权限:
18 
19 [root@db01 scripts]# chmod +x ./expect.sh
20 
21 测试:
22 
23 [root@db01 scripts]# ./expect.sh
24 spawn ssh root@192.168.0.120
25 root@192.168.0.120's password:
26 Last login: Sat Feb 15 21:04:05 2020 from 192.168.0.199

 

3、简述linux操作系统启动流程 

  POST加电自检(初始化硬件设备,检查系统外围主要设备,如CPU,内存,硬盘,显卡,IO设备,键盘鼠标等)--> 根据BIOS中的BootSequence当中的设定去加载指定设备中的bootloader或硬盘MBR中的bootloader(CentOS5,6用的是grub legency,CentOS7中的bootloader是grub2) --> bootloader去加载指定启动分区上的kernel,有必要则需提供ramdisk,ramdisk是由我们事先定义好的但需要通过bootloader所加载,跟内核一并装载至内存,内核展开以后就是内核,ramdisk展开以后就是一个完整的临时的虚的根文件系统,装载完以后kernel根据这个临时根文件系统找到所需要的各种各样的工具,包括最重要的去加载真正根文件系统所在设备所需要的各种驱动程序,包括最底层的硬件驱动,上层逻辑设备驱动(如果存在),文件系统等模块 --> 装载完成,就需要切根rootfs(switch_root) -->装载真正根文件系统上的/sbin/init程序(这个程序主要去读取它的配置文件,有三类:/etc/inittab,/etc/init/*conf,/usr/lib/systemd/system/),说明/sbin/init程序是各不相同的,这三类的功能却很相似 -->设定默认运行级别,系统初始化(根据系统初始化脚本等完成初始化),关闭以及启动服务(关闭在前因为K是在前的,在rc中的脚本是先循环了k开头的链接),启动命令行终端或者图形终端,打印登入提示符。

 

4、破解centos7 密码

1、系统启动时任意键暂停启动,如下图界面:

 

 

 2、按e键进入编辑模式,如下图:

 

 

 

 3、将光标移动linux16开始的行,找到ro crashkernel=auto ...并将ro 改为rw init=/sysroot/bin/sh,如下图:

 

4、按ctrl-x启动,进入以下界面,开始破解:

输入以下命令:

# chroot /sysroot

# passwd root

# touch /.autorelabel

# exit

# rebboot

实际操作截图如下:

 

 

系统重启完成,使用新的root密码登入系统即可。

 

 

posted on 2020-02-14 20:49  mark_dq  阅读(170)  评论(0编辑  收藏  举报

导航