第十周

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

[root@centos7 ~]#cat create.sh
#!/bin/bash

[ $# -ne 2 ] && { echo Usage:$0 username home-dir; exit 1; }
if [ ! -d $2 ];then
	 mkdir -p $2 || { echo syntax error;exit 10; }
fi
id $1 &> /dev/null && echo user $1 is exist! || { useradd -d /www $1 &> /dev/null && echo user $1 is created and home-dir is $2; }

# 执行结果
[root@centos7 ~]#./create.sh
Usage:./create.sh username home-dir
[root@centos7 ~]#./create.sh magedu /www
user magedu is created and home-dir is /www
[root@centos7 ~]#./create.sh magedu /www
user magedu is exist!

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

[root@centos7 ~]#cat expect.sh 
#!/usr/bin/expect

set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
spawn ssh $user@$ip
expect {
	"yes/no" {send "yes\n";exp_continue}
	"password" {send "$password\n"}
}
interact

# 执行结果
[root@centos7 ~]#./expect.sh 192.168.131.131 root 123456
spawn ssh root@192.168.131.131
root@192.168.131.131's password: 
Last login: Sun Jun 21 15:17:47 2020 from 192.168.131.1
Hello!!!
[root@CentOS6 ~]#

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

  • CentOS 6启动流程

    • 加载BIOS的硬件信息,获取第一个启动设备
    • 读取第一个启动设备的MBR中的grub引导程序
    • 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
    • 核心执行第一个程序init,并获取默认的运行信息
    • init程序执行/etc/rc.d/rc.sysinit文件
    • 启动核心的外挂模块
    • init执行运行的各个脚本文件
    • init执行/etc/rc.d/rc.local
    • 执行/bin/login程序,等待用户登录
    • 登录之后可以用shell控制主机
  • CentOS 7引导顺序

    • UEFI或BIOS初始化,运行POST开机自检
    • 选择启动设备
    • 引导装载程序,CentOS是grub2
    • 加载装载程序的配置文件:/etc/grub.d、/etc/default/grub、/boot/grub2/grub.cfg
    • 加载initramfs驱动模块
    • 加载内核选项
    • 内核初始化,CentOS7使用systemd代替了init
    • 执行initrd.target所有单元,包括挂载/etc/fstab
    • 从initramfs根文件系统切换到磁盘根目录
    • systemd执行默认target配置,配置文件为/etc/systemd/system/default.target
    • systemd执行sysinit.target初始化系统及basic.target准备操作系统
    • systemd启动multi-user.target下的本机与服务器服务
    • systemd执行multi-user.target下的/etc/rd.d/rd.local
    • systemd执行multi-user.target下的getty.target及登录服务
    • systemd执行graphical需要的服务

4、破解centos7 密码。

  • 启动时按任意键暂停启动,按e键进入编辑模式

  • 找到linux16一行,在行尾添加rd.break,并按Ctrl-x启动

    说明:这里的rd.break可以改为rw init=/sysroot/bin/sh,此时不需要执行下面的重新挂载命令,因为已经通过rw方式挂载了根目录

  • 通过mount命令查看根目录的挂载信息,可以看到根目录被以只读方式挂载在/sysroot目录下

  • 重新以读写方式挂载根目录,并切根

    mount -o remount,rw /sysroot

    chroot /sysroot

  • 修改root密码

    passwd root

  • 退出切根,然后重启,root即可以新密码登录

posted @ 2020-06-21 21:00  scott_Lsh  阅读(163)  评论(0)    收藏  举报