1.28k likes | 1.44k Views
第 2 章 Linux 操作系统管理基础. 计算机学院 潘薇 panwei117@qq.com. 本章要点. 2.1 系统引导、运行与系统关闭 2.2 用户及组管理命令 2.3 系统管理员与用户通信 2.4 任务自动调度 2.5 系统性能管理. 2.1 系统引导、运行与系统关闭. 当计算机打开电源后, Linux 系统开始了引导过程。该引导过程主要由以下步骤构成: 从开机到自检完成进入操作系统引导 从装入系统核心程序到建立核心环境过程 从初始化程序到启动服务过程. 2.1.1 系统引导. 2.1.1 系统引导.
E N D
第2章 Linux操作系统管理基础 计算机学院 潘薇 panwei117@qq.com
本章要点 • 2.1 系统引导、运行与系统关闭 • 2.2 用户及组管理命令 • 2.3 系统管理员与用户通信 • 2.4 任务自动调度 • 2.5 系统性能管理
当计算机打开电源后,Linux系统开始了引导过程。该引导过程主要由以下步骤构成:当计算机打开电源后,Linux系统开始了引导过程。该引导过程主要由以下步骤构成: 从开机到自检完成进入操作系统引导 从装入系统核心程序到建立核心环境过程 从初始化程序到启动服务过程 2.1.1 系统引导
2.1.1 系统引导 • 从开机到自检完成进入操作系统引导: • 当计算机打开电源后,CPU以实模式运行BIOS自检程序。 • BIOS自检程序首先在物理地址0处开始初始化中断向量。 • CPU执行BIOS所带的系统初始化程序,从启动盘读取主引导记录MBR(MBR:master boot record:磁盘中的0磁道、0扇区部分代码,该代码包括系统的初始化程序加载器、分区数据表和验证码)。 • 在磁盘中找到系统的初始化程序加载器,则将其读到内存0000:7C00处。
2.1.1 系统引导 • 从装入系统核心程序到建立核心环境过程: • 执行磁盘中系统的初始化程序加载器,并将系统核心程序装入内存。在Linux系统中,有两种类型的引导加载器:LILO(Linux Loader)和GRUB(Grand Unified Boot Loader)。引导加载器的功能主要是把Linux内核可执行代码写入内存。 • 在引导加载过程中,系统将保存BIOS自检返回的系统参数,如关于内存、磁盘等信息的参数。 • 当内核太大时,初始进入内存的内核是经过压缩的,在进入内存后再解压。当装入系统核心程序后,Linux开始执行系统核心代码,得到CPU的控制权。
2.1.1 系统引导 • 从初始化程序到启动服务过程: • 系统核心程序调用初始化函数init(),启动系统的初始化(init)过程。 • 系统运行初始化程序生成一系列的初始进程,最后读取配置文件/etc/inittab中设置的系统运行级,设置系统环境,启动各种守护进程,等待用户登录。
2.1.2 系统运行级 • 系统运行级是系统运行时所处的一种状态,不同的运行级在用户登录及使用上有一定的限制。通常Linux有10个运行级,如表2.1所示。
2.1.2 系统运行级 表2.1 系统运行级定义
2.1.2 系统运行级 • 通常情况下,系统运行在多用户输出资源运行级,即:运行级为3或者5,两者区别在于3为命令行模式,5为图形界面。 • 为了文件安全,会选择不输出资源和不提供任何网络服务的运行级2,2也是命令行模式。 • 在系统进行备份或系统出现问题而修复时,会选择运行级1。 • 有的操作系统版本将运行级4定义为厂家的维护模式。
系统的运行级定义及管理文件为/etc/inittab文件。该文件中有系统的默认运行级及各运行级别定义。在初始化系统时,系统的初始化程序首先需要寻找该文件来确定系统的运行级。系统的运行级定义及管理文件为/etc/inittab文件。该文件中有系统的默认运行级及各运行级别定义。在初始化系统时,系统的初始化程序首先需要寻找该文件来确定系统的运行级。 init文件行格式为: identifier:Run Level:Action:Command identifier为标识符; Run Level为运行级。 Action为init命令应向进程实施的动作。 Command表示要执行的Shell命令。 2.1.2 系统运行级
具体的动作有: respawn:启动并监视进程,若进程终止则重启它。 wait表示启动进程,在继续到下一项取得运行状态之前,等待进程结束。 once表示若进程没有执行则启动它,但不等它结束就继续下一项。 boot表示只在引导时执行该项但不等待其完成。 bootwait表示只在引导时执行该项并等待其完成。 powerfail表示当系统收到powerfailure信号时执行。 powerwait表示当系统收到powerfailure信号时执行并直到执行结束。 2.1.2 系统运行级
2.1.2 系统运行级 • off表示若与该项相关的进程正在执行则杀死该进程,也用于注释不用的终止行。 • ondemand只用于a、b、c运行级,与respawn类似。 • initdefault用于指出默认运行级,必须处于文件的第一行,且只列出一个运行级。 • sysinit用于激活在试图访问系统控制台时需要完成的进程。会在执行boot及bootwait之前执行。 • ctrlaltdel:当用户按下“Ctrl+Alt+Del”组合键时执行的操作。
2.1.2 系统运行级 • 选择运行级在系统初始化时进行,此处选择的是系统的默认运行级。 • 如果在系统运行中需要改变运行级,也可以借助于命令进行选择。常用init命令或者telinit命令来选择系统的运行级。这两个命令都位于/sbin/目录下。 • 使用init和telinit命令可以不用修改/etc/inittab文件中的默认运行级定义而只需重新引导系统,就能改变正在运行系统的运行级。 • 当init和telinit命令赋予系统一个新的运行级时,则读取/etc/inittab文件并为该特定运行级执行所有的运行控制脚本。但如果/etc/inittab文件不存在,系统就只能引导成单用户模式。
2.1.2 系统运行级 • /sbin/init命令格式为:/sbin/init n • /sbin/telinit命令格式为:/sbin/telinit n • n为选择的运行级。 • 用命令who–r可以查找系统的运行级,同时系统还会显示上次改变运行级的日期和时间。 $who –r run-level 5 2012-07-12 09:44 last=S $
2.1.2 系统运行级 • 控制运行级运行的脚本位于目录/etc/rc.d/rc#.d目录中,其中#代表运行级。这些脚本也被称为rc Shell脚本,其主要功能是执行用于为被选运行级启动服务。 • 例如:初始化进程选择运行级3时,则执行/etc/rc.d/rc3.d目录中的文件。
2.1.2 系统运行级 • 目前有7个运行控制目录可供系统选择: • /etc/rc.d/rc0.d • /etc/rc.d/rc1.d • /etc/rc.d/rc2.d • /etc/rc.d/rc3.d • /etc/rc.d/rc4.d • /etc/rc.d/rc5.d • /etc/rc.d/rc6.d
2.1.2 系统运行级 • 在系统引导时rcShell脚本所作的工作有: • 设置计算机主机的名字和IP地址。 • 配置网络接口。 • 检查文件系统。 • 安装文件系统。 • 从/tmp目录中删除文件。 • 设置区域时间。 • 启动daemon。 • 启动网络服务。 • 启动应用。
2.1.2 系统运行级 • 这些文件包含启动和关闭所有与该运行级相关功能的脚本。因此,rc Shell脚本的设计目的是传递参数start和stop给系统初始化进程。 • 当调用一个带start参数的脚本时,该脚本以提问方式启动服务;当调用一个带stop参数的脚本时,该脚本停止服务进程。 • 另外还可以通过编写函数的方式,在引导或关闭过程序列中指定具体开始或停止服务的位置。
2.1.2 系统运行级 • /etc/init.d目录包含操作系统为进程提供的初始化和终止脚本。在系统中可以使用这些脚本为进程传递start或stop参数。 • 在/etc/init.d目录中每个脚本都有一条case语句接收start或者stop变量。 • 例如:当需要执行文件/etc/init.d/nfs.server start时,case语句指向/etc/rc2.d/S70nfs.server。
2.1.2 系统运行级 • 用户自定义开机启动程序脚本/etc/rc.d/rc.local • 写入该文件的命令将在系统启动时执行,不必等待登录系统再启动。
2.1.3 系统关闭 • 系统关机:Linux不允许直接关掉电源,必须执行关机命令,在系统完成了关闭操作之后才可以断电。只有超级用户才有权执行关机命令。 • 关闭系统可分为三种情形:关掉电源、不关电源只关机、重新引导。 • 关闭系统的命令有shutdown、halt、reboot、init
2.1.3 系统关闭 • shutdown命令:该命令向所有的系统用户发出关闭系统的通知,默认情况下等待60秒后关闭系统。 • 命令格式如下: • shutdown [-f file | mesg] [-g time] [-i init-level] [-y] • 其中: • file:文件中包含有shutdown第一步中系统管理员发给所有终端用户的消息; • time:等待关机的时间,缺省为60秒; • init-level:将系统转入的运行级别。默认情况下转入0级; • y:对所有的交互问题均以yes回答。 • 在不同系统中可能shutdown命令的路径不同,在执行该命令时需要根据具体的系统查找该命令的路径。
2.1.3 系统关闭 • halt命令:用于立即关机。 • 该命令不会给系统用户发出关机通知。 • halt命令不严格执行rc关闭脚本中的规定,不是一种最佳的系统关闭方法。 • 命令格式:halt
2.1.3 系统关闭 • reboot命令: 使用reboot是关闭系统并重新引导系统。 • 该命令不发送关闭系统的通知给系统用户,不严格执行rc关闭脚本中的规定,也不是最佳的关机命令。 • 命令格式如下:reboot • 如果系统添加了新的软、硬件就需要关机重新引导,用命令:reboot –r • 该命令表示运行一个重新配置的脚本,装载模块目录中列出的所有设备驱动程序并创建相应的硬件节点。
2.1.3 系统关闭 • /sbin/init命令与/etc/telinit命令 • 前面已经介绍过init和telinit命令都用来修改运行级,当运行级为0时则关闭电源。 • 这两个命令可以互换,但telinit命令使用rc脚本删除进程,能够可靠地关闭系统。
2.2 用户及组管理命令 • 用户和组管理是Linux系统管理的一部分,系统管理员通过对用户或组进行管理,实现对系统的访问控制。
2.2.1 用户管理信息和用户管理文件 • 用户管理信息 • 用户帐号及用户标识符(uid):是用户登录系统的凭证。用户标识符是系统赋予每个用户的唯一管理标识。 • 用户组帐号及组标识符(gid):用于管理用户组,是每一个用户组的唯一管理标识。 • 用户注释:用于提醒系统管理员与用户有关的一些信息。 • 用户默认Shell:用户登录后缺省的Shell类型。 • 用户主目录及主目录权限:用户登录后缺省进入的目录,是用户具有使用权限并受保护的主目录(家目录)。 • 用户密码及有效期:用户登录系统时验证的标识。在有效期内起作用。
2.2.1 用户管理信息和用户管理文件 • 在Linux系统中常用的用户管理文件有: • /etc/passwd文件 • /etc/shadow文件 • /etc/security/shadow文件 • /etc/group文件 • 这些文件只有系统管理员才有权限修改。
2.2.1 用户管理信息和用户管理文件 • /etc/passwd文件是系统用户认证访问权限的第一个文件。该文件中的行格式如下: login_name:password:uid:gid:user info: home_directory:default_shell • 其中: • login_name:用户帐户,可以用1~8个字符表示,区分大小写,避免使用数字开头; • password:加密后的用户登录系统的密码; • uid:系统指定给每个用户的唯一数值,即用户标识符,32位系统中标识符在0~60 000之间。; • gid:用户组标识;
2.2.1 用户管理信息和用户管理文件 • user info:用户注释信息(如用户身份、电话号码、特性等); • home_directory:用户的主目录(家目录); • default_shell:用户登录系统时默认执行的Shell程序,通常为/bin/sh,表示执行Bourne Shell。如果是Korn Shell则用/usr/bin/ksh。如果是C Shell则用/usr/bin/csh。如果是TC Shell则用/usr/bin/tcsh(较少使用)。如果是Bash Shell则用/usr/bin/bash(Linux系统)。
2.2.1 用户管理信息和用户管理文件 • 例 /etc/passwd文件实例。 $cat /etc/passwd root:!:0:0::/:/usr/bin/sh daemon:!:1:1::/etc: bin:!:2:2::/bin: sys:!:3:3::/usr/sys: adm:!:4:4::/var/adm: uucp:!:5:5::/usr/lib/uucp: xwen:!:251:1::/home/xwen:/usr/bin/sh ldap:*:255:1::/home/ldap:/usr/bin/sh duj:!:415:1::/home/duj:/usr/bin/sh …… $
2.2.1 用户管理信息和用户管理文件 • 在Linux系统中用/etc/shadow文件管理用户密码,该文件中的行与/etc/passwd文件中的行完全对应。该文件主要用于系统管理员修改或取消用户密码。 • /etc/shadow文件中行的格式为: login_name:encrypted_password:last_change:min:max:warn:inaction:expire:reserved
2.2.1 用户管理信息和用户管理文件 • 其中: • login_name:登录用户帐号; • encrypted_password:加密后的用户密码; • last_change:口令上次被修改的日期距离1970.1.1的天数; • min:密码不可被更改的天数(距离上次修改); • max:密码需要被更改的天数(距离上次修改) ; • warn:密码更改期限前多少天发出警告。该警告在用户登录时发出; • inaction:密码过期之后的宽限天数; • expire:用户禁止登录并且其帐号不可用的绝对日期; • reserved:保留区域,空白。
2.2.1 用户管理信息和用户管理文件 • 例 /etc/shadow文件实例。 $cat /etc/shadow root:ASHFNadn:10390:0:0:::: daemon:NP:6645:::::: bin:NP:6645:::::: sys: NP:6645:::::: adm:NP:6645:::::: uucp: NP:6645:::::: xwenNP:6645::::::: ldap:*kfjkj:10255:2:45:2::: duj:MKHS*:12415:34:56:::: …… $
2.2.1 用户管理信息和用户管理文件 • 部分Linux系统版在没有用管理文件/etc/shadow管理用户密码,而用/etc/security/passwd文件管理用户密码。 • /etc/security/passwd文件实例: wenxie: password = usjflgk2gk5mrn lastupdate = 901274567 flags = ADMIN,NOCHECK jiexich: password = Ndkfj6k63vus lastupdate = 901274567 flags =
2.2.1 用户管理信息和用户管理文件 • 其中: • password:加密后的用户密码; • lastupdate:口令最近改变时间距离1970.1.1的秒数; • flags:用户使用login、passwd和su命令的约束。约束可能是一个用逗号分开的清单,如ADMIN,ADMCHG,NOCHECK或blank(默认)。
2.2.1 用户管理信息和用户管理文件 • 文件/etc/group管理用户组。 • 文件中的行格式为: groupname:password:gid:user-list • 其中: • groupname:用户组名; • password:组密码; • gid:组的标识符; • user-list:同组用户清单。
2.2.1 用户管理信息和用户管理文件 • /etc/group文件实例: $cat /etc/group root::0:root0 other::1 bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon mail::6:root tty::7:root,tty,adm daemon::11:root,daemon sysadmin::12: admin::2000:stu01,stu02,stu03 $
2.2.1 用户管理信息和用户管理文件 • 在Linux系统中除了用/etc/group文件作为组基本管理之外,还用/etc/security/group文件配合管理组。 • /etc/security/group文件实例如下: sys: admin = true adm: admin = true adms = ppadmn,ftp02 dmdusers admin = false
2.2.2 用户管理命令 • 添加用户命令: 当一个新用户需要使用系统时,系统管理员需要向系统添加一个新的用户帐号。 • 系统管理员用命令useradd向系统添加一个新的用户帐号,该命令格式如下: useradd [-c comment] [-d dir] [-e expire] [-f inactive] [-g group] [-G group [, group…]] [-m [-k skeldir]] [-u uid [-o]] [-s shell] login
2.2.2 用户管理命令 • 其中选项表示为: • c comment:用户的注释; • d dir:用户的主目录(用户家目录)。通常情况下,如果系统默认用户主目录为/home,新增用户的帐号为zijich,则新增用户的主目录为/home/zijich; • e expire:指定登录的终止日期,该日期之后用户禁止登录; • f inactive:指定在用户密码过期后允许该帐号登录的最大天数,通常是一个正整数。如果为0表示该值无效; • g group表示一个已存在的组标识符,表示新增用户要加入的主要组; • G group表示一个已存在的组标识符,表示新增用户要加入的附加组;
2.2.2 用户管理命令 • m:如果新增用户的主目录不存在则创建一个用户主目录,如果已经存在则新增加的用户对其有读、写和执行权限; • k skeldir是一个包含有被复制到新增用户起始目录中的框架信息(如.profile文件)的目录,必须是已经存在的目录; • u userid表示新增用户的标识符(uid),是0~65 535之间的一个整数。Linux系统为了更方便地管理用户,除用户名之外还给每个用户增加了用户标识符,每个用户都有一个唯一的标识符。有时将用户帐号称为系统用户的外标识符,而将uid称为系统用户的内标识符; • s shell表示新增用户登录时默认的Shell; • login 表示新增用户的帐号(用户名)。
2.2.2 用户管理命令 • 例 #useradd –c 〝Zhang Li Ming 87653421〞-d /export/home/zhanglm –e 089823 –f 300 –g admin –m –k /usr/local/bin/skel –u 1001 –s /bin/csh zhanglm • 如果新增用户在系统中已经存在,则会出现报错信息。
2.2.2 用户管理命令 • 删除用户命令: 如果一个用户不再使用系统时,系统管理员应该删除该用户帐号。如果用户较长一段时间不用系统,系统管理员可在此期间将用户帐号“锁住”,而不需要删除用户帐号。 • 删除用户帐号的命令格式如下: userdel [-rp] login • 其中选项: • r:表示删除用户主目录及所有的子目录; • p:表示删除/etc/security/passwd文件中的密码信息。 • 例 删除用户zhanglm。 #userdel –r zhanglm
2.2.2 用户管理命令 • 修改用户命令: 系统管理员利用命令usermod可以修改用户相关的信息。 • 命令格式如下: usermod [-u uid] [-g group] [-G group [,group…]] [-d dir[-m]] [-s shell] [-c comment] [-l new_logname] [-f inactive] [-e expire] [-L lock] [-U unlock] login
2.2.2 用户管理命令 • 其中选项表示为: • u uid:用户标识符; • g group表示一个已存在的组标识符,表示新增用户要加入的主要组; • G group表示一个已存在的组标识符,表示新增用户要加入的附加组; • d dir:用户的主目录; • s shell表示新增用户登录时默认的Shell; • c comment:用户的注释; • l new_logname:修改后新的用户帐号; • f inactive:设定密码过期后多少天即关闭用户帐号; • e expire:指定登录的终止日期,该日期之后用户禁止登录; • login:需要修改信息的用户帐号。 • lock:锁定用户密码,在锁定期间用户密码不能使用; • unlock:解除锁定的用户密码。
2.2.2 用户管理命令 • 创建组: 当需要建立一个新的用户组时,系统管理员需要向系统添加一个新的用户组帐号。 • 添加组命令的格式如下: groupadd [-g gid] group • gid为组标识符,意义与用户标识符相似。 • 修改组: 通过命令groupmod修改给定组的信息。 • 命令格式如下: groupmod [-g gid] [-n newname] group • gid为组标识符,newname为新的组账号。