Linux课程第十周作业


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

[root@centos7 scripts]#vim usermagedu.sh
if [ $# -ne 2 ]; then
    echo "请输入两个位置变量,第一位为需要创建的用户,第二位为其家目录"
    exit
fi
id $1 &> /dev/null
if [ $? -eq 0 ]; then
    echo "用户$1已存在"
else
    useradd -d $2 $1
    echo "用户$1创建成功,其家目录为$2"
fi
[root@centos7 scripts]#bash -n usermagedu.sh
[root@centos7 scripts]#bash usermagedu.sh root
请输入两个位置变量,第一位为需要创建的用户,第二位为其家目录
[root@centos7 scripts]#bash usermagedu.sh root www
用户root已存在
[root@centos7 scripts]#bash usermagedu.sh magedu /www
用户magedu创建成功,其家目录为/www
[root@centos7 scripts]#getent passwd magedu
magedu:x:2003:2003::/www:/bin/bash

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

vim test1
#!/usr/bin/expect
set ip 192.168.6.5
set user root
set password 1234567
set timeout 10
spawn ssh $user@$ip
expect {
        "yes/no" { send "yes\n";exp_continue }
        "password" { send "$password\n" }

}
interact
chmod +x test1
./test1

set是用来在expect中定义变量的
timeout是超时时间
spawn是进入expect环境后才可以执行的expect内部命令,用来启用新的进程
expect用来判断上次输出的结果是否包含"yes/no",如果有则立即返回,否则等待一段时间返回(这一段时间即为timeout的10秒)
exp_continue意味着继续往下判断输出结果是否包含"password"
send用于向进程发送字符串
interact允许用户交互(否则进入完成指令后会退出而不会留在另一台终端上)
更详细的关于expect的使用方法见https://www.cnblogs.com/dion-90/articles/8570601.html这篇文章

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

Centos6启动流程

1.加载BIOS的硬件信息,获取第一个启动设备
2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息
3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备4.核心执行init程序,并获取默认的运行信息
5. init程序执行/etc/rc.d/rc.sysinit文件,重新挂载根文件系统
6.启动核心的外挂模块
7. init执行运行的各个批处理文件(scripts)
8. init执行/etc/rc.d/rc.local
9.执行/bin/login程序,等待用户登录
10.登录之后开始以Shell控制主机

Centos7及以后启动流程

1.UEFi或BIOS初始化,运行POST开机自检
2.选择启动设备
3.引导装载程序,centos7是grub2,加载装载程序的配置文件:
/etc/grub.d/
/etc/default/grub
/boot/grub2/grub.cfg
4.加载initramfs驱动模块
5.加载内核选项
6.内核初始化,centos7使用systemd代替init
7.执行initrd.target所有单元,包括挂载/et/fstab
8.从initramfs根文件系统切换到磁盘根目录
9. systemd执行默认target配置,配置文件/etc/systemd/system/default.target 10. systemd执行sysinit.target初始化系统及basic.target准备操作系统
11. systemd启动multi-user.target下的本机与服务器服务
12. systemd执行multi-user.target下的/etc/rc.d/rc.local
13. systemd执行multi-user.target下的getty.target及登录服务
14. systemd执行graphical需要的服务

四、破解centos7 密码

方法一:

1.启动时任意键暂停启动
2.按e键进入编辑模式
3.将光标移动linux16 开始的行,添加内核参数rd.break
4.按ctrl-x启动
5.mount –o remount,rw /sysroot
6.chroot /sysroot
7.passwd root
#如果SELinux是启用的,需要执行touch /.autorelabel,如查没有启动,不需要执行
8.exit
9.reboot

方法二:

1.启动时任意键暂停启动
2.按e键进入编辑模式
3.将光标移动linux16 开始的行,将ro改为rw init=/sysroot/bin/sh
4.按ctrl-x启动
5.chroot /sysroot
6.passwd root
#如果SELinux是启用的,需要执行touch /.autorelabel,如查没有启动,不需要执行
7.exit
8.reboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值