linux作业9

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

[root@localhost data]# cat user.sh #!/bin/bashid $1 >& /dev/nullif [ $? -eq 0 ]; then echo "$1 user is already exists" else useradd $1 -d $2 >& /dev/null echo "add $1 !" fi [root@localhost data]# sh user.sh magedu /www magedu user is already exists [root@localhost data]#

2、使用expect实现自动登录系统。
[root@localhost data]# expectexpect_login.sh 192.168.80.10 root centos spawn ssh root@192.168.80.10 root@192.168.80.10's password: Last login: Tue Feb 18 07:16:42 2020 from 192.168.80.10 [root@localhost ~]# logout Connection to 192.168.80.10 closed. [root@localhost data]# cat expect_login.sh #!/usr/bin/expectset 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@localhost data]#

3、简述linux操作系统启动流程
Centos7: 1.按下电源电脑加电,cpu执行rom里面的程序,即UEFi或BIOS初始化,POST开机自检 2.扫描启动设备,通常是硬盘启动,找到硬盘的第一个扇区即mbr扇区,里面有grub2第一阶段,分区表,标记位 3.第一阶段程序根据1.5阶段的驱动,进而找到并识别2阶段的分区,即boot分区4.找到boot分区后,执行boot分区里grub2第二阶段,即内核引导加载器,加载内核、initramfs模块,内核自解压并初始化,借助initramfs里面的驱动进而识别根分区,以只读方式挂载根分区; 5.挂载根分区后,执行systemd程序,进行用户空间的初始化, 6.systemd执行默认target配置,配置文件/etc/systemd/system/default.target7.根据配置的默认运行级别,加载对应的应用程序 8.systemd执行multi-user.target下的getty.target及登录服务,等待用户登陆CentOS6: 1.按下电源电脑加电,cpu执行rom里面的程序,即UEFi或BIOS初始化,POST开机自检 2.扫描启动设备,通常是硬盘启动,找到硬盘的第一个扇区即mbr扇区,里面有grub2第一阶段,分区表,标记位 3.第一阶段程序根据1.5阶段的驱动,进而找到并识别2阶段的分区,即boot分区4.找到boot分区后,执行boot分区里grub2第二阶段,即内核引导加载器,加载内核、initramd 模块,内核自解压并初始化,借助initramd里面的驱动进而识别根分区,以只读方式挂载根分区; 5.挂载根后,核心执行init程序,并获取默认的运行信息 5.init程序执行/etc/rc.d/rc.sysinit文件,进行一系列初始化操作 6.根据配置运行不同运行级别的应用程序, 7.执行getty程序,bin/login程序,生成若干终端,等待用户登录

4、破解centos7 密码。
1.重启服务器,ctrl alt delete 组合键, 2.按下e键,进入内核编辑界面,找到linux16开头的一行,在行尾,输入init=/bin/sh,然后ctrl x键启动 3,得到一个shell ,先以读写方式重新挂载根分区,否则默认只读方式挂载的根,无法进行写操作,所以会无法更改密码 4,mount -o rw,remount / 5,passwd root 6,exit 7,用新密码登陆即可

    推荐阅读