第五章Linux系统的启动.docx
《第五章Linux系统的启动.docx》由会员分享,可在线阅读,更多相关《第五章Linux系统的启动.docx(18页珍藏版)》请在冰豆网上搜索。
第五章Linux系统的启动
第五章Linux系统的启动
教学内容:
⏹Linux启动步骤和GRUB
⏹init进程的分析
⏹用户登录和Shell
教学目标:
⏹了解Linux启动步骤、Shell特点、GRUB
⏹熟悉Shell的功能、init进程的功能
⏹掌握GRUB、inittab文件的设置
教学重点:
⏹GRUB的操作
⏹Inittab文件的设置
教学难点:
⏹init进程的分析及设置
一.启动步骤和GRUB
1.Linux启动过程分析
(1)BIOS自检
●硬件检测及初始化
●引导启动设备
(2)引导启动设备
●软盘(0磁道第一个扇区)
●光盘(最外围存储轨道)
●硬盘(MBR)
●USB存储设备
(3)调用Linux引导程序至内存中
●Linux的引导程序可以使用GRUB/LILO等引导软件
●GRUB/LILO可以安装在MBR/引导分区的引导扇区中
(4)运行Linux内核
●内核放在/boot目录中,Linux系统可以同时支持多版本内核
●解压缩内核
●检测硬件
●加载root文件系统
(5)执行init进程(按“i”单步运行)
●启动新进程或关闭进程
●选择启动模式
●建立虚拟终端
(6)用户登录
●输入用户名及口令
●加载用户配置文件
●加载shell程序
2.引导盘的创建
方法一:
安装过程中创建
方法二:
mkbootdisk
#mkbootdisk--device/dev/fd02.4.20-8
方法三:
使用dd命令
#ddif=/boot/vmlinuzof=/dev/fd0
3.GRUB
(1)GRUB简介
GRUB是一种基于intel平台的功能强大的启动引导器
(2)GRUB特点
●支持大硬盘,突破1024柱面的限制
●支持两种界面(菜单,命令行)
●开机画面
(3)安装GRUB
●安装软件包
#rpm–ivhgrub-0.934.i386.rpm
●使用安装命令安装GRUB到MBR
#grub
grub>root(hdx,y)
grub>setup(hdx[,y])
(4)GRUB的配置
#vi/boot/grub/grub.conf
grub.conf中常用的配置命令有:
default=菜单项序号/saved
设置启动菜单的默认启动项
hiddenmenu
隐藏菜单界面
splashimage=图像文件全路径名
指定某文件作为启动菜单的背景图像
timeout=延迟秒数
设置启动菜单的启延时
title菜单项名称
开始一个菜单项的配置,设置菜单项的名称
root(hdx,y)
设置GRUB的根设备为linux内核所在的分区
kernel内核文件名称
指定内核文件的名称及加载内核所需的参数
initrdinitrd文件名
指定镜像文件的位置
map(hdx[,y])(hdx[,y])
建立虚拟磁盘
rootnoverify(hdx,y)
指定windows启动引导器的位置
makeactive
标识指定分区为活动分区
chainloader+n/文件名称
调用指定windows启动文件
password口令/--md5口令密文
设置GRUB启动菜单和菜单项口令
lock
利用password设置的全局口令锁定菜单项
savedefault
保存当前启动菜单项为默认启动
文件实例:
#grub-md5-crypt(产生口令的MD5密文)
#vi/etc/grub.conf
default=0
timeout=50
splashimage=(hd0,0)/grub/splash.xpm.gz
password--md5#!
dfdasdf34123!
#@$!
#@
titleRedHatLinux9.0
root(hd0,2)
kernel/Vmlinuz-2.4.20-8roroot=/LABEL=/
initrd/initrd-2.4.20-8.img
passwordlinux
tilewindows2000
rootnoverify(hd0,0)
chainloader+1
lock
(5)GRUB的FAQ
●编辑模式的使用
用于临时修改菜单的选项,在菜单界面中按E键进入
菜单主界面
编辑模式
●命令行模式的使用
利用命令行命令设置GRUB,在菜单界面中按C键进入
命令模式
grub命令行中常用的命令有:
grub>root(hdx,y)//设置根设备所对应的分区
grub>kernel内核文件//设置内核文件的名称
grub>initrd镜像文件名//设置镜像文件名
grub>boot//启动指定操作系统
grub>rootnoveify(hdx,y)//设置根设备所对应的分区,但不检查加载点
grub>chainloader文件名//加载指定的文件
grub>help//获取帮助
grub>reboot//重启系统
grub>md5-crypt//生成口令的MD5密文
grub>setup(hdx[,y])//安装GURB到MBR/指定分区的引导扇区中
grub>hide分区//隐藏分区
grub>cat文件名//显示文件内容
grub>find文件名//查找文件
●如果MBR中的GRUB引导程序被其它程序覆盖,应该如该恢复
1)放入第一张安装启动盘,开始启动计算机:
boot:
linuxrescue(启动linux的修复模式,加载硬盘上的LINUX系统到/mnt/sysimage)
2)#grub
grub>root(hdx,y)
grub>root(hdx)
●恢复GRUB的配置文件
由于grub.conf设置的问题,可以采用以下方法进行恢复:
1)放入第一张安装启动盘,开始启动计算机:
boot:
linuxrescue(启动linux的修复模式)
2)#vi/mnt/sysimage/boot/grub/grub.conf
●如何利用GRUB进入单用户模式,找回丢失的root用户口令
在GRUB菜单界面中按e编辑linux菜单项,给内核添加参数single
●如何卸载GRUB
1)#rpm-egrub
2)C:
\>fisk/mbr
二.init进程
1.init进程的作用
init进程是系统启动第一个进程,它负责加载其它进程、管理系统的其它进程
2.系统运行级别
运行级别
说明
0
关机
1
单用户模式
2
多用户模式、不支持NFS
3
多用户模式
4
保留
5
X-WINDOWS
6
重启
可以使用init在各个运行级别中进行切换,init命令格式如下:
#init<0-6,a,s,q>
3.inittab文件的分析
/etc/inittab文件用于设置init进程在执行时加载哪些程序,inittab文件由若干个记录构成,每条记录格式如下:
ID:
RUNLEVEL:
ACTION:
COMMAND
以下为默认inittab文件内容:
id:
3:
initdefault:
si:
:
sysinit:
/etc/rc.d/init.d/rc.sysinit
l0:
0:
wait:
/etc/rc.d/rc0
l1:
1:
wait:
/etc/rc.d/rc1
l2:
2:
wait:
/etc/rc.d/rc2
l3:
3:
wait:
/etc/rc.d/rc3
l4:
4:
wait:
/etc/rc.d/rc4
l5:
5:
wait:
/etc/rc.d/rc5
l6:
6:
wait:
/etc/rc.d/rc6
ca :
:
ctrlaltdel:
/sbin/shutdown-t3-rnow
pf:
:
powerfail:
/sbin/shutdown-f-h+2“powerfailure;powershuttingdown”
pr:
12345:
powerokwait:
/sbin/shutdown–c“powerrestored;shutdowncancelled”
1:
2345:
respawn:
/sbin/mingettytty1
2:
2345:
respawn:
/sbin/mingettytty2
3:
2345:
respawn:
/sbin/mingettytty3
4:
2345:
respawn:
/sbin/mingettytty4
5:
2345:
respawn:
/sbin/mingettytty5
6:
2345:
respawn:
/sbin/mingettytty6
x:
5:
respawn:
/etc/X11/prefdm-nodaemon
说明:
(1)Action用于设置调用进程的方式
Respawn
只要进程停止,该进和便重新启动
Wait
进程运行一次,init等待到它停止
Once
进程运行一次
Boot
系统引导过程中,进程运行,忽略等级
Bootwait
系统引导过程中,进程运行,init等待结束
Off
无任何行动
Initdefault
系统默认运行等级
Sysinit
系统引导则运行,优先于boot或bootwait
Powerwait
电源故障后发送信号给init,等待进程终止
Ctrlaltdel
当init收到SIGINT信号时,该进程运行
Powerokwait
UPS恢复则向init发送SIGINT信号
(2)修改/etc/inittab文件,可以设置默认启动模式、各运行级别所加载的程序、CTRLALTDEL的动作、开设虚拟用户终端
4./etc/rc.d的目录内容
(1)/etc/rc.d/init.d目录
●保存所有运行等级需要的所有脚本
●启动、停止、重启某些服务
(2)/etc/rc.d/rc
●系统改变运行等级,通过此脚本检查/etc/rc.d/rcX.d目录和文件可存在,以及是否正在运行等,以及运行/etc/rc.d/rcX.d中所有S开头的脚本
(3)/etc/rc.d/rcX.d目录
●存放每一运行等级默认启动项,该目录中的文件链接到:
/etc/rc.d/init.d
●文件名格式为K{Two-digitnumber}{scriptname}/S{Two-digitnumber}{scriptname},K:
以stop参数运行,S:
以start参数运行;Two:
数字代表执行顺序
(4)/etc/rc.d/rc.local
●该脚本在2,3,5运行等级结束时执行
(5)/etc/rc.d/rc.sysinit
●系统初始脚本,用于设置系统的时钟、加载键盘、加载系统字体、加载其他文件系统、激活交换分区、生成日志文件
五.用户登录
1.用户登录过程
不存在
存在
2.用户登录命令
(1)su
功能:
切换用户登录
格式:
#su[参数][-][用户名]
参数:
-c命令:
运行指定的命令
-m:
不重新设置环境变量
-sshell路径:
运行指定的shell
-:
连同工作环境一起切换
实例:
$su-
#suuser1
$su-c/sbin/init0root
(2)exit
功能:
退出用户环境(ctrl+d)
格式:
#exit
(3)login
功能:
登录系统
格式:
#login[参数][用户名]
参数:
-p:
通知login保持现在的环境参数
-h:
用来向远程登录的主机传输用户名
实例:
#login
(4)logout
功能:
退出用户环境、注消用户
实例:
#logout
(5)sudo
功能:
以其它用户执行指定的命令,默认是以root身份,只有/etc/sudoers文件中指定的用户有权执行
格式:
#sudo[参数]命令
参数:
-b 在后台执行指令
-H 将HOME环境变量设为新身份的HOME环境变量。
-k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l 列出目前用户可执行与无法执行的指令。
-p 改变询问密码的提示符号。
-s 执行指定的shell。
-u<用户> 以指定的用户作为新的身份。
若不加上此参数,则预设以root作为新的身份。
-v 延长密码有效期限5分钟。
实例:
#sudo/sbin/init0
说明:
/etc/sudoers文件格式为:
userhost=[all/nopasswd/runas用户名]commandlint;其中All代表所有文件,nopasswd代表执行文件时不需要要口令
(6)who
功能:
显示登录用户信息
格式:
#who[参数]
参数:
-l显示系统登录进程
-b显示系统最后一次启动时间
实例:
#who
#who-l
(7)w
功能:
显示登录用户信息
格式:
#w[用户]
实例:
#w
(8)whoami
功能:
显示当前终端登录的用户名称
实例:
#whoami
(9)last
功能:
显示最近的用户登录情况
格式:
#last[参数]
参数:
num显示指定终端上的用户登录信息
-num显示最近n次的用户登录信息
-i显示登录主机的IP地址
实例:
#last
#last3
(10)wall
功能:
向每个用户终端上的用户发送消息
格式:
#wall[参数]
参数:
-n不显示消息来源
实例:
#wall
#wall-n
(11)write
功能:
向指定终端的用户发送消息
格式:
#write用户名[终端]
实例:
#writeuser1tty1
注意:
/etc/motd为公告板文件,用于记录所有公告信息;/etc/issue为欢迎信息文件
(12)help
功能:
获取shell内置命令的帮助信息
格式:
#help[内置命令名]
实例:
#help
#helptimes
(13)man
功能:
打开命令手册文件
格式:
#man[命令名/文件名]
实例:
#mansu
3.PAM
(1)PAM简介
PAM(PluggableAuthenticationModules)可插拔认证模块,使用共享库对用户登录及资源访问进行认证
(2)PAM体系结构
●PAM可以被很多应用程序调用,提供验证功能
●PAM机制通过调用应用程序的PAM模块进行验证,但PAM模块的验证要根据配置文件内容进行
(3)PAM配置文件及目录
●PAM配置文件由类型标记、控制标记、模块路径、模块参数四部分构成
●类型标记是用于告诉PAM当前行的模块应用于哪类认证,PAM支持以下四种类型标记
类型名称
说明
auth
验证用户身份
account
用户账号管理,主要执行限制用户服务
session
在用户驼过验证之前/后需要进行的内容
password
提供用户验证之前身份的机制
●控制标记告诉PAM如何对待模块认证失败,PAM支持以下四种类型的控制标记:
名称
说明
required
模块认证失败会导致拒绝用户认证,仍进行PAM认证
requisite
模块验证失败会导致拒绝用户认证,并中断PAM验证
optional
模块控件目大多是在显示讯息而已,并不是用在验证方面
sufficient
模块验证成功,则准许用户认证,并中断PAM验证
●PAM的相关目录
/lib/security目录:
保存PAM模块文件
/etc/pam.d目录:
保存PAM配置文件
●PAM配置文件实例(/etc/pam.d/other):
authrequired/lib/security/$ISA/pam_deny.so
accountrequired/lib/security/$ISA/pam_deny.so
sessionrequired/lib/security/$ISA/pam_deny.so
passwordrequired/lib/security/$ISA/pam_deny.so
(4)PAM的应用
●限制用户的登录终端
#vi/etc/pam.d/login
添加以下内容:
authrequiredpam_securetty.so
#vi/etc/securetty
tty1
tty2
tty3
●限制用户使用资源的机率
#vi/etc/pam.d/login
添加如下内容:
Sessionrequiredpam_limits.so
#vi/etc/security/limits.conf
添加以下内容:
u1hardmaxlogins1(限制u1用户只能同时登录一次)
注:
●/etc/security目录存放资源限制的相关文件,其中limits.conf较常用,它由用户及用户组、限制类型、资源类型、限制值四部分构成
●用户组名必须@开头,*代表所有用户
●限制类型有soft和hard两种
●资源类型包括以下几种:
名称
说明
Core
限制core文件大小,单位为KB
data
最大数据大小,单位为KB
fsize
最大文件大小,单位为KB
memlock
最大内存空间大小,单位为KB
nofile
打开文件个数的最大值
cpu
最大CPU时间,单位为分钟
nproc
最大进程数
maxlogins
同时最大登录数