第九周作業(yè)

一、編寫腳本,接收二個(gè)位置參數(shù),magedu和/www,判斷系統(tǒng)是否有magedu,如果沒有則自動(dòng)創(chuàng)建magedu用戶,并自動(dòng)設(shè)置家目錄為/www

[root@centos7 data]# cat user.sh 
#!/bin/bash

user=$1

[ $# -ne 2 ] && echo "Usage: $0 user homedir" && exit 1

if [[ $2 =~ ^(\/.*) ]];then
   homedir=$2
else
   echo "The homedir must be a directory"
   exit 2
fi

if id $user  &> /dev/null ; then
   echo "$user is exist"
   exit 3
else
   useradd -m -d $homedir $user
   [ $? -eq 0 ] && echo "$user create success"
fi

測(cè)試腳本

[root@centos7 data]# bash user.sh
Usage: user.sh user homedir
[root@centos7 data]# bash user.sh magedu www
The homedir must be a directory
[root@centos7 data]# bash user.sh magedu /www
magedu create success

二、使用expect實(shí)現(xiàn)自動(dòng)登錄系統(tǒng)

[root@centos7 data]# cat expect.sh 
#!/bin/bash

ip=$1
user=$2
password=$3

expect << EOF
set timeout 20
spawn ssh $user@$ip
expect {
  "yes/no" {send "yes\n";exp_continue}
  "password" {send "$password\n"}
}
expect "]#" {send "ls\n"}
expect "]#" {send "exit\n"}
expect eof
EOF

測(cè)試腳本

[root@centos7 data]# bash expect.sh 192.168.214.27 root root
spawn ssh root@192.168.214.27
root@192.168.214.27's password:
Last login: Tue Dec 24 10:42:01 2019 from 192.168.214.17
[root@centos7-27 ~]# ls
anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates
Desktop Downloads Music Public Videos
[root@centos7-27 ~]# exit
logout
Connection to 192.168.214.27 closed.

三、簡(jiǎn)述linux操作系統(tǒng)啟動(dòng)流程

  1. 計(jì)算機(jī)加電自檢

當(dāng)給計(jì)算機(jī)通電后,其主板上的COMS芯片會(huì)執(zhí)行BIOS(Basic Input and Output System)上的程序,程序會(huì)對(duì)其硬件信息去檢查是否存在以及是否能夠正常工作,最后初始化硬件。

  1. 加載bootloader

根據(jù)啟動(dòng)順序找到第一個(gè)可以啟動(dòng)的磁盤,加載其MBR中的BootLoader,MBR共有512個(gè)字節(jié),前446個(gè)字節(jié)為bootloader主程序,中間64個(gè)字節(jié)為分區(qū)表,最后2個(gè)字節(jié)為硬盤有效標(biāo)志(55AA),此時(shí)又分為三個(gè)階段:

stage1: 加載Bootloader的主程序用于加載stage 1.5的代碼;

stage1.5:由于stage1識(shí)別不了文件系統(tǒng),也就無法加載內(nèi)核,stage1_5作為stage1和stage2中間的橋梁,stage1_5有識(shí)別文件系統(tǒng)的能力,讓statge1中的bootloader能夠識(shí)別stage2所在的分區(qū)文件系統(tǒng);

stage2:當(dāng)stage2被載入內(nèi)存執(zhí)行時(shí),它首先會(huì)去解析grub的配置文件/boot/grub/grub.conf中的Kernel的信息,然后將Kernel加載到內(nèi)存中運(yùn)行,當(dāng)Kernel程序被檢測(cè)并在加載到內(nèi)存中,GRUB就將控制權(quán)交接給了Kernel程序。

  1. 內(nèi)核初始化

此階段主要是探測(cè)可識(shí)別的硬件,加載硬件驅(qū)動(dòng),切換根分區(qū)(掛載rootfs),運(yùn)行系統(tǒng)第一個(gè)進(jìn)程init進(jìn)程初始化系統(tǒng)

  1. 系統(tǒng)初始化

此階段主要是初始化軟件運(yùn)行環(huán)境,它會(huì)讀取配置文件/init/inittab (centos5和6) 或者 systemd (centos7) 讀取默認(rèn)運(yùn)行級(jí)別,然后運(yùn)行該默認(rèn)級(jí)別下的腳本,啟停默認(rèn)級(jí)別下定義的服務(wù) (centos7采用systemd來啟停服務(wù),centos6是采用init進(jìn)程來啟停服務(wù)),最后登錄終端。

四、破解centos7密碼

  1. 啟動(dòng)時(shí)按任意鍵暫停啟動(dòng)


    image.png
  2. 按 e 鍵進(jìn)入編輯模式,將光標(biāo)移至linux16開始的行,添加內(nèi)核參數(shù) rd.break


    image.png
  3. 按 ctrl + x 啟動(dòng),進(jìn)入緊急模式


    image.png
  4. 以讀寫方式重新掛載/sysroot, mount -o remount,rw /sysroot
switch_root:/# mount -o remount,rw /sysroot
  1. 切換根 chroot /sysroot
switch_root:/# chroot /sysroot
  1. 修改 root 密碼


    image.png
  2. 創(chuàng)建安全標(biāo)簽,touch /.autorelable (SELINUX 需要,如已經(jīng)用??刹徊僮?
sh-4.2# touch /.autorelable
  1. 推出根, exit ,并重啟系統(tǒng),reboot


    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、編寫腳本,接受二個(gè)位置參數(shù),magedu和/www,判斷系統(tǒng)是否有magedu,如果沒有則自動(dòng)創(chuàng)建magedu...
    阿浩浩浩閱讀 328評(píng)論 0 0
  • 1、編寫腳本,接受二個(gè)位置參數(shù),magedu和/www,判斷系統(tǒng)是否有magedu,如果沒有則自動(dòng)創(chuàng)建magedu...
    一心1977閱讀 193評(píng)論 0 0
  • cenos6啟動(dòng)流程 加載BIOS的硬件信息,獲取第一個(gè)啟動(dòng)設(shè)備 讀取第一個(gè)啟動(dòng)設(shè)備MBR的引導(dǎo)加載程序(grub...
    毛利卷卷發(fā)閱讀 1,204評(píng)論 0 1
  • 1、編寫腳本,接受二個(gè)位置參數(shù),magedu和/www,判斷系統(tǒng)是否有magedu,如果沒有則自動(dòng)創(chuàng)建magedu...
    原來是考拉吶閱讀 143評(píng)論 0 0
  • 1、編寫腳本,接受二個(gè)位置參數(shù),magedu和/www,判斷系統(tǒng)是否有magedu,如果沒有則自動(dòng)創(chuàng)建magedu...
    alone_0cd6閱讀 171評(píng)論 0 0

友情鏈接更多精彩內(nèi)容