第十周
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即可以新密码登录
![]()






浙公网安备 33010602011771号