1、编写脚本,接受二个位置参数,solin 和 /www ,判断系统是否有 solin ,如果没有则自动创建 solin 用户,并自动设置家目录为 /www
#!/bin/bash
if [ $# == 2 ];then
if `id $1 &> /dev/null` ;then
echo "用户已存在,用户信息如下:"
echo `id $1`
else
useradd $1 -d $2
fi
fi
2、使用 expect 实现自动登录系统
# 创建脚本文件
[root@localhost ~]# vim ssh.exp
# 脚本内容如下
#!/usr/bin/expect
spawn ssh root@10.10.10.101
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "password\n" }
}
interact
# 安装 expect
[root@localhost ~]# yum install -y expect
# 授予执行权限
[root@localhost ~]# chmod +x ./ssh.exp
# 执行脚本(登录成功)
[root@localhost ~]# ./ssh.exp
spawn ssh 10.10.10.101
The authenticity of host '10.10.10.101 (10.10.10.101)' can't be established.
ECDSA key fingerprint is SHA256:j94kX7ROOIiX7BVmMULvS+Npo7pd7O1KtT4Bsux1qF4.
ECDSA key fingerprint is MD5:88:d1:85:ec:36:16:7f:b7:54:65:b0:5f:7b:d8:ce:c9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.10.101' (ECDSA) to the list of known hosts.
root@10.10.10.101's password:
Last login: Thu Jun 18 09:32:30 2020
[root@cobbler ~]#
3、简述 linux 操作系统启动流程
3.1 CentOS 6
- 按下电源通电,CPU 开始工作,运行 BIOS 程序,BIOS 掌握 CPU 控制权;
- BIOS 程序执行上电自检,查找 MBR,MBR开始掌握CPU控制权;
- MBR 结合其他引导代码(这些代码统称为 bootloader )引导系统内核启动;
- 找到内核映像后,将内核映像装载到内存中并解压(如果被压缩),内核开始工作,掌握 CPU 控制权,启动一些重要进程,然后执行用户空间的第一个进程 init 进程,init 进程掌握 CPU 控制权;
- init 进程开始运行就表示系统已经启动成功,然后做系统级别的初始化,结束后提供登录界面(getty 类进程);
- getty 类进程启动成功后,打开一个终端,提示用户输入用户名,然后启动一个 login 进程让用户输入密码并验证密码,密码正确则验证权限,如果允许登录,则根据 /etc/passwd 中的配置启动 shell 进程,如 bash;
- shell 进程启动后读取该 shell 对应的配置文件进行初始化;
- 启动过程结束,可以在命令行执行用户操作。
3.2 CentOS 7
- UEFI 或 BIOS 初始化,运行 POST 开机自检;
- 选择启动设备;
- 引导内核,做部分内核初始化工作,加载 initramfs ;
- 启动 systemd 进程,systemd 进程此时工作在 initramfs 环境下;
- systemd 执行 initrd.target 所有单元,包括挂载 /etc/fstab、从 ramdisk 的虚根文件系统切换到真正的根文件系统;
- systemd 执行默认 target 配置,其配置文件为 /etc/systemd/system/default.target;
- systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统;
- systemd 启动 multi-user.target 下的本机与服务器服务;
- systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local;
- systemd 执行 multi-user.target 下的 getty.target 让用户登录;
- 启动 shell 进程并初始化,最终进入命令行。
4、破解 centos7 密码
-
进入启动界面,选择内核行,按 e 键,编辑启动项;
-
在 linux16 这行的结尾添加
init=/bin/sh
(此处 ro 改成 rw ,或添加rw init=/bin/sh
下一步可不用重新挂载),按 Ctrl+x 启动;
-
重新挂载 / (
mount / -o rw,remount
),用passwd
修改密码。