免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 904 | 回复: 0
打印 上一主题 下一主题

《Red Hat 9系统管理》读书笔记--系列转载之一 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-07 22:06 |只看该作者 |倒序浏览
《Red Hat 9系统管理》读书笔记


作者    张启峰
Email:

zqf620@gmail.com


启动引导篇

一 GRUB 启动引导器
1.启动引导器(Boot Loader)是计算机启动过程中运行的第一个真正的软件。通常,计算机在启动时,通过
BIOS 自检后读取并运行硬盘主引导扇区(MBR)中的启动引导器(Boot Loader)程序,启动引导器再负责加载和
启动硬盘分区中的操作系统
2.GRUB 是一个功能强大的Boot Loader 程序。Red Hat 9 默认使用GRUB 作为启动引导器程序
3.可以在GRUB 的启动菜单界面中,对GRUB 的启动菜单项进行编辑,具体方法见屏幕提示。在启动菜单项
编辑界面所作的修改只对当次启动有效,并不会保存到GRUB 的配置文件中
4.GRUB 的命令行界面可分为2 类情况:
1) 启动菜单命令行界面: 即在GRUB 启动菜单界面键入"e"或"c"键而进入
2) Shell 程序界面 : 即在Linux shell 下使用"grub"命令而进入
5.GRUB 的配置文件-grub.conf
1) grub.conf 文件的默认位置是 /boot/grub/grub.conf,由一系列grub 命令组成的文本文件
2) GRUB 配置文件包括2 部分: 全局配置、菜单项配置
3) 全局配置: 常见的有default,timeout,splashimg 三个命令
eg:
default=0 //指定GRUB的默认启动菜单项
timeout=10 //指定GRUB菜单界面的停留时间
splashimage=(hd0,0)/boot/grub/splash.xpm.gz //指定GRUB 的启动画面
4) 菜单项配置,一个菜单项对应一个操作系统:
  1> 用于启动Linux 的菜单项一般使用title,root,kernel,initrd 四条命令。
   eg:
   title Red Hat Linux (2.4.20-8) //指定菜单项的名称
   root (hd0,0) //指定GRUB的根设备为Linux 内核所在的分区
   kernel /boot/vmlinuz-2.4.20-8 ro root=LABLE=/ //指定要加载的内核文件及内核启动参数
   initrd /boot/initrd-2.4.20-8.img //指定要加载的内核镜像文件
  2> 用于启动Windows 的菜单项一般使用title,[map,]root,[makeactive,]chainloader 这几条命令。
eg:
title win2000p
map (hd0)(hd1) //交换磁盘或分区在BIOS 中的标识符,用于启动第二个硬盘中的Window
map (hd1)(hd0)
root (hd1,0) //指示Window OS 所在分区,(hd1,0)表示第二个硬盘第一个分区
makeactive //将根设备设为活动分区,针对于Window 不能从非活动分区启动
chainloader +1 //调用Window 分区的启动引导器引导Window 系统
5) GRUB 的安全设置:
  1> 设置全局口令
  设置全局口令后,不能在GRUB 启动菜单界面中使用"e" "c"命令进入命令行界面,除非先用"p"命令解锁
  Usage: 在全局配置之后菜单项配置之前,使用命令: password 口令字符串
  2> 使用全局口令锁定启动菜单项:
  在GRUB 启动菜单界面中选择该菜单项时,会提示输入口令,只有输入全局口令后才能启动对应的OS
  Usage: 先设置全局口令,然后在要锁定的菜单项的title 命令之后使用命令 "lock"
  3> 为各个菜单项设置单独的锁定口令:
  与2>类似,只是各个菜单项可以设置各自的口令,并不要求先设置全局口令,但建议先设置全局口令
  Usage: 在要锁定的菜单项的title 命令之后使用命令: password 口令字符串
  4> 使用MD5 加密口令:
  在grub.conf 配置文件中口令使用的是明文,容易泄漏。可以使用md5 来加密口令
Usage:
    ① 在GRUB 的命令行界面下运行命令"md5crypt"或在shell 下运行命令"grub-md5-crypt"
    ② 提示输入口令,输入口令字符串后,得到该口令字符串对应的加密字符串
    ③ 在使用" password 口令字符串"的地方用"password -md5 加密字符串"代替
6.GRUB 命令参考
1) 菜单命令: 只能用于grub.conf 的全局配置部分的命令
Include: default,fallback,hiddenmenu,timeout,title(用于菜单项)
2) 常规命令: 既可以用于grub.conf 的全局配置部分,又可以用于GRUB 命令行界面的命令
Include: bootp,color,device,dhcp,hide,ifconfig,pager,partnew,parttype,password,rarp,serial
setkey,splashimage,terminal,tftpserver,unhide
3) 命令行和菜单项命令: 既可以用于grub.conf 的菜单项配置,又可以用于GRUB 命令和的命令
Include: blocklist,boot,cat,chainloader,cmp,configfile,debug,displayamp,displaymem,embed,find
fstest,geometry,halt,help,impsprobe,initrd,install,ioprobe,kernel,lock,makeactive
map,md5crypt,module,modulenounzip,pause,quit,reboot,read,root,rootnoverity
savedefault,setup,testvbe,uppermem,vbeprobe
7.一些GRUB 的tips
1) 配置GRUB 重复上次启动项
可以让GRUB 在下一次启动PC 时的默认菜单项为本次启动时选择的启动项。
Usage: 1> 在grub.conf 配置文件的全局配置部分使用命令"default saved"
  2> 在每个菜单项的末尾都加上命令"savedefault"
2) 制作GRUB 启动盘
Usage: 1> mke2fs /dev/fd0 //Shell下运行
  2> mount /mnt/floppy
  3> grub-install --root-directory=/mnt/floppy/'(fd0)' //安装GRUB 到软盘
3) 使用GRUB 启动盘恢复被覆盖的MBR
Usage:
  1> 用GRUB 启动盘引导PC,进入"grub>"提示符界面,这时GRUB 的root 为 fd0
  2> find /boot/grub/grub.conf //查看Linux 内核所在的硬盘分区,本例为 (hd0,0)
  3> root (hd0,0) //设置内核所在分区为root(根设备)
  4> setup (hd0) //安装GRUB 到第一块硬盘(hd0)




二 Linux 的启动与服务
1.Linux 的启动过程
1) BIOS 自检
2) 启动GRUB/LILO
3) 运行Linux kernel 并检测硬件
4) 运行Linux 系统的第一个进程init(其PID 永远为1,是所有其它进程的父进程)
5) init 读取系统引导配置文件 /etc/inittab 中的信息进行初始化
  1> 执行系统初始化脚本- /etc/rc.d/rc.sysinit,执行系统初始化(包括很多内容)
  2> 根据指定的运行级别(runlevel)来运行服务器脚本程序,再执行脚本 /etc/rc.d/rc.local
  3> 运行一些其他的特别服务,一般为 /sbin/mingetty 和 /etc/X11/prefdm
6) Linux 控制台(console)提示用户输入用户名、密码进行登陆。
2.Linux 系统的运行级别(runlevel)
1) Linux 系统有7 个运行级别,Linux 系统任何时候都运行在一个指定的运行级别上
. 运行级别0 系统停机(halt)状态,系统的默认运行级别不能设为0,否则不能正常启动
. 运行级别1 单用户工作(single user)状态,root 权限,用于系统维护,禁止远程登陆
. 运行级别2 多用户(multiuser)状态 (没有NFS)
. 运行级别3 完全的多用户(multiuser)状态 (有NFS),登陆后进入控制台命令行模式
. 运行级别4 系统未使用,保留
. 运行级别5 X11 控制台 (xdm、gdm、kdm),登陆后进入图形GUI 模式
. 运行级别6 系统正常关闭并重启(reboot),默认运行级别不能设为6,否则不能正常启动
2) 不同的运行级别所运行的程序和服务不尽相同,所要完成的工作和要达到的目的也不相同
3) 运行级别的原理:
  1> 在目录 /etc/rc.d/init.d 下有许多服务器脚本程序,一般称为服务(service)
  2> 在 /etc/rc.d 下有7 个名为 rcN.d 的目录,其中N=0-6,对应于系统的7 个运行级别
  3> rcN.d 目录下,都是一些符号链接文件,这些链接文件都指向 init.d 目录下的service 脚本文件
这些链接文件的命名规则是 "K+nn+服务名" 或 "S+nn+服务名",其中 nn 为2 位数字
eg: rc3.d 目录下的链接文件 S80sendmail 就指向service 脚本文件 ../init.d/sendmail
  4> 系统会根据指定的runlevel 进入对应的 rcN.d 目录,并按照文件名顺序检索目录下的链接文件
. 对于以K 为开头的链接文件,系统将终止对应的服务
. 对于以S 为开头的链接文件,系统将启动对应的服务
通过这种方式来实现 "不同的运行级别运行不同的程序和服务"
4) 查看系统当前的运行级别:
Usage: runlevel
转换系统的运行级别:
Usage: init N //切换到运行级别N
eg: init 0 //关机
init 6 //重启动系统
3.系统引导配置文件 /etc/inittab 解析
1) /etc/inittab 是 INIT 进程的配置文件,用于描述系统启动时和正常运行中将运行哪些进程
2) 文件 inittab 中的每一行(除注释行外)都具有相同的格式:
ID:RUNLEVELS:ACTION:PROCESS // 分为4 个域,以":"为域分隔符
eg: pr:12345:powerokwait:/sbin/shutdown -c "Power Restored;Shutdown Canclled"
  1> ID 字段: 用于唯一的标识文件中一行
  2> RUNLEVELS 字段: 指定一个或多个运行级别,不能包含任何间隔符
  3> ACTION 字段: 指定运行状态,可以有如下的取值:
. respawn 当本行下一个字段指定的命令结束后,重新运行该命令
. wait 执行本行下一个字段指定的命令,并等待其结束,然后执行下一行
. once 执行本行下一个字段指定的命令,不等待其结束,就开始执行下一行
. boot 在系统启动时执行本行下一个字段指定的命令,并忽略
. bootwait 在引导完成后,执行本行下一个字段指定的命令,并等待其结束
. off 指示init 撤销本行下一个字段指定的命令所对应的进程
. initdefault 指定首次启动时所进入的运行级别状态
. sysinit 在与系统控制台通讯时执行本行下一字段指定的命令
. powerwait 在电源出现错误时执行本行下一字段指定的命令,并等待其结束
. powerfail 在电源出现错误时执行本行下一字段指定的命令,不等待其结束
. powerokwait 当电源恢复时执行本行下一字段指定的命令
. ctrlaltdel 当按下Ctrl+Alt+Del 组合键时,执行本行下一字段指定的命令
  4> PROCESS 字段: 用于指定要运行的命令
3) 系统初始化脚本-/etc/rc.d/rc.sysinit
1> 在文件 inittab 中第二行一般为: si::sysinit:/etc/rc.d/rc.sysinit
2> rc.sysinit 脚本是专门用于系统初始化的文件。包括检查、挂载文件系统,设置系统时钟,初始化设备,
加载系统模块、字体等。
4.Linux 系统服务
1) Linux 系统服务程序是由运行在后台的守护进程(daemon)来执行的,系统服务又称守护进程
2) Linux 系统服务程序的启动脚本都放置在目录 /etc/rc.d/init.d 中
3) 服务程序的启动和停止
  1> 方法1: service_script_file arg
  2> 方法2: service_name arg
注: 参数 arg 一般可以是: start|stop|status|restart|reload|condrestart
服务名 service_name 一般就是该服务在 init.d 目录中对应的脚本文件名
eg: /etc/rc.d/init.d/xinetd status //查看服务xinetd 的状态
service httpd restart //重启动服务httpd(Apache 服务器)
4) 为运行级别指定要启动/停止的服务
  1> 文本用户界面(TUI)工具:
Usage: ntsysv
. 可以配置所有服务程序在当前运行级别中的启动/停止状态
  2> 命令行界面(CLI)工具:
Usage: chkconfig
. 可以配置所以服务程序在各个运行级别中的启动/停止状态
    ① 查看所有或指定服务的启/停状态: chkconfig --list [service_name]
    ② 添加新服务/删除指定的服务: chkconfig --
    ③ 设置指定服务在指定运行级别的启/停状态:
    chkconfig [--level ]  
    注: levels 是要指定的运行级别,可以是多个运行级别(不用分隔符)
    reset 表示将服务的启/停状态恢复到系统的默认状态
    ④ 设置非独立服务(由xinetd 管理的服务)的启/停状态:
chkconfig   //不需要指定运行级别
  3> 举例:
chkconfig rsync on //rsync 服务是由xinetd 来管理的服务
chkconfig --level 24 syslog off //设置在运行级别2 和4 不启动服务syslog
chkconfig --list httpd //查询服务httpd 在各个运行级别的启/停状态

三 可插拔认证模块-PAM
1.PAM 概述
1) Linux-PAM,即Pluggable Authentication Modules for Linux
2) PAM 使用一套共享库,是系统管理员可以选择应用程序如何对用户进行认证
3) PAM 的配置文件位于 /etc/pam.d 目录,每个需要对用户进行验证的程序在这里都有一个与它自身名称相同
的配置文件,文件 /etc/pam.d/other 是通用配置(为所有其它没有独立PAM 配置文件的程序所使用)。
2.PAM 配置文件
1) 应用程序的 PAM 配置文件每一行均为如下格式:
type control module_path module_args //以空格为域分隔符
  1> type 字段: 认证类型,即指示当前行的模块将应用于哪种类型的认证。PAM 支持4 种类型:
. account 验证用户帐号是否被允许访问服务,如用户帐号口令是否过期等
. auth 验证用户身份,一般为通过口令进行验证
. password 提供用户改变验证身份的机制,通常为改变口令
. session 在用户通过验证之前/之后需要进行的内容(会话)
  2> control 字段: 指示如何应对模块认证失败。PAM 支持4 种类型:
. requisite 当前模块认证失败后,立即拒绝用户认证
. required 如果当前模块认证失败,在拒绝用户认证之前仍调用接下来的所有其它模块
. sufficent 如果当前模块认证成功,则立即准予用户认证成功,即使之前的required 类型认证失败。
同时也不会再尝试认证其它模块。如果模块认证失败,sufficient 当做optional 一样对待
. optional 如果当前模块认证失败,将继续处理下一模块。即当前模块失败,用户仍可能通过鉴别
  3> module_path 字段: 指示被使用的模块。如果没有给出全路径,默认模块目录是 /lib/security/
  4> module_args 字段: 指示用于传递给模块的模块参数。模块可以带参数,也可以不带参数
2) 每个 PAM 配置文件都可以有多行,即对于某个应用程序可以有不同的认证类型,同一认证类型也可以使用
不同的模块(模块参数)来进行认证。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/80941/showart_1275040.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP