本手册的章节按照以上给出的标题顺序安排,你还必须了解何时及如何进行如下管理工作: (本手册不包含如下系统管理工作:安装系统软件、安装第三厂家软件、建立和管理网络服务、建立和管理邮件服务、扩充和删除硬件、管理安全性和记帐、监视系统和网络性能。)这章其余部分将描述如何完成系统管理员的工作,并介绍一些基本命令和管理工具。 1.1了解超级用户状态 超级用户是一个具有特权的用户,它可不受任何限制地使用全部文件和命令,超级用户有一个特定的UID(=0),这个帐号的用户名为root(其实只要是UID为0的用户就是超级用户)。许多系统管理任务都必须在超级用户下完成,如安装和拆卸文件系统、改变文件和目录的存取权和所有权、备份和恢复文件系统、创建设备文件,以及关闭系统。 我们可以用如下办法进入超级用户: 1、 在其它用户状态下,用不带任何参数的su命令,并按需要键入root的口令。 2、 在login提示下,键入root及其口令。 在入进超级用户后,shell将给出一个特殊的提示符“#”,提醒你对系统有着至高无上的存取权,做任何事情都要小心,通过查询记录文件/var/adm/sulog,可以跟踪谁正在使用超级用户帐号。 最好在必要时才进入超级用户,应该避免在超级用户下做一般的事情。如果某项任务需要你是超级用户,它会提示你应该进入超级用户。当你完成必要的工作后,应立即回到一般用户状态。 由于超级用户非保护的存取权限严重威胁系统的安全,所以root帐号总是设有一个口令,而且为了增加安全性,要经常更换口令。 1.1.1成为超级用户(su) 仅当需要使用root权限完成一定的工作时,你才进入超级用户,下面是从普通用户成为root的方法: 1、 在Shell的$或%提示符下,输入su。如果root帐号有口令的话,系统会提示你键入口令。 2、 键入超级用户口令,如果口令正确,你就具有了超级用户权限,系统显示“#”提示符。 gtxa%su Password: # 如果想使用root本身的环境变量,键入su -。 1.1.2退出超级用户状态 要退出超级用户状态,就简单地键入exit。 #exit gtxa% 1.1.3以root注册 要直接注册成root,必须在login提示下完成: 1、 在login提示下,输入root,于是系统提示你输入root口令。 2、 输入root的口令,如果口令正确,系统将出现root提示符#: login: root Password: # 1.2与用户通信 系统管理员工作的一个重要部分是与用户通信,使用户了解管理员所做的事情对系统功能所造成的影响,要让用户及时知道你所做的管理工作(如:重新引导系统,安装新的软件,或以某种方式改变系统环境)何时将对它们产生影响。 管理员可以口头与用户通讯,但最普遍的方式是: ;在注册时显示当前系统专用信息. ;用write命令直接将消息发送到某个用户终端上. ;用wall使用将消息发送给一个系统上的所有用户. ;用rwall命令将消息发送给网络上的所有用户. ;通过电子邮件将消息发送一个或一组用户. 1.2.1在注册时显示系统专用信息 每次用户注册进系统,屏幕上都会显示当天的系统消息,这个消息存贮在文件/etc/motd中。已经注册进系统和正在使用系统的用户看不见此信息,可使用motd命令查看此消息,这些信息包括:操作系统版本号,系统软件的变化,新安装(或删除)的第三厂家文件的名称,或系统的调度时间表。必须确保motd文件是最新的,如果motd显示的是过时的消息,用户会因此而失掉一个关键信息,消息应尽量简短,如果其长度超过一屏,用户就读不到开头部分。/etc/motd文件所在者应该是root, 而且root应是唯一对此文件具有写权限的用户。 gtxa% ls -1 /etc/motd -rw-r--r-- root sys 49 Jan 1 1970 /etc/motd gtxa% 注意:系统软件安装后,有几个文件(包括/etc/motd 在内)的更新时间为“Jan 1 1970”这个日期是UNIX的起始日期,当你对这些文件编辑后,这个时间会随之改变。 1.2.1.1建立日期消息 用如下步骤建立日期消息: 1、 成为超级用户 2、 用编辑工具(如vi)编辑/etc/motd文件 3、 删除不用的消息,输入新的消息 4、 保存修改后的文件,这些消息在用户下次登录进系统时显示 1.2.2将信息发送给单个用户 可以使用write命令将信息发送到用户的终端上,当使用窗口系统(如Open Windows)时,每个窗口都有一个独立的帐号,如果用户登录多次,则信息会直接显示在控制台窗口中。 1.2.2.1发送一个短消息给一个单独的用户 用以下步骤将一个一次性的短消息发送给单个用户: 1、 键入write username,username是用户的注册名。 2、 键入要发送的消息。 3、 输完消息后,键入Control-D. 则在username用户的控制台窗口中显示你键入的内容。 下面给出系统管理员发送消息的例子: gtxa% write ignatz@elm I'll come by at 12:00 to look at your problem. gtxa% 下面是在用户控制台窗口显示的消息: Message from fred@gtxa on ttypl 11:20... I'll come by at 12:00 to look at your problem. EOF 1.2.2.2将作为一个文件的消息发给个别用户 如果你想发送消息给一些用户,建立一个消息文件,再使用带参数的write命令来实现,其中的一个参数是消息文件名。 建立一个文件,此文件含有想要发送的消息。 键入write username < filename 在下面的例子中,管理员用cat命令建立消息文件: gtxa% cat >; message I'll come by at 12:00 to look at your problem. gtxa% write ignatz@elm < message write: ignatz logged in more than once... writing to console gtxa% 如果用户进入了多个窗口系统,消息就显示在用户的控制台窗口中。下面是显示在控制台上的消息格式: Message from fred@gtxa on ttypl at 11:20... I'll come by at 12:00 to look at your problem. 象以上显示的那样,键入的消息与显示的消息是相同,用户可以用write命令响应并初始化一个双向对话,但这种对话不是真的交互式的。有两条打开的write 路径,两个方向各一条,详细介绍见write(1)说明。 1.2.3将消息发送给一个系统或网络中的所有用户 可以使用wall命令(write all)将消息同时发送给系统中的每个用户,用rwall(remote write all)命令将消息同时发送给网络中的所有用户。 要将消息发送给系统中的所有用户: 1、 键入wall 2、 键入想要发送的消息 3、 输入完消息后,键入control-D, 消息就会显示在系统中每个用户的控制台窗口中。 下面是一个实例: gtxa% wall System will be rebooted at 12:00 gtxa% 显示在用户控制台窗口的消息: Broadcast message from root on console... System will be rebooted at 12:00 EOF 注意:使用rwall命令要非常小心, 因此此命令消耗大量的系统和网络资源,要将消息发送给网络上的所有用户: 1、 键入rwall-n 2、 键入要发送的消息 3、 消息输入完后,键入Control-D, 消息就显示在网络系统各个用户的控制台窗口中。 下面是一个实例: gtxa%rwall-n Eng System gtxa will be rebooted at 12:00 gtxa% 显示在用户控制台窗口中的消息是: Broadcast message from root on console... System will be rebooted at 12:00 也可以用rwall命令将消息发送给某个系统中的所有用户, 其命令格式为:rwall hostname 1.2.4通过电子邮件发送消息 E-mail是传播某些系统管理信息的一种有效方式,但本手册不介绍如何使用电子邮件,有关邮件信息的详细说明见mail(1)、mailtool(1)和mailx(1)。 1.3启动和关闭系统 启动及关闭系统是系统管理工作的一个组成部分,这一节描述正常启动和关闭系统的过程,如果系统启动出现错误,参阅系统文档中有关如何诊断引导问题。 SunOS 5.x系统软件总处于连续运行状态,这样电子邮件和网络软件能正常地工作,但在以下几种情况下,系统却必须关闭或停止。 ;切断系统电源 ;安装一个新版本的操作系统 ;电源老化 ;系统扩充硬件 ;进行文件系统维护 1.3.1选择init状态 Solaris系统软件有八个init状态: 缺省init状态/etc/inittab 中确定。Solaris系统软件的缺省init状态是运行级3。表1.1列出了7个可能的运行级别和系统在每级上的状态。 表1.1 系统初始状态 初始状态功能 0掉电状态 1.S.s系统管理员状态(单用户) 2多用户状态(不输出资源,没有启动NFS) 3多用户状态(输出资源,启动NFS进程) 4替换多用户状态(目前不用) 5软件重引状态(目前不用) 6系统重引导状态 /sbin/init 程序负责确保系统正常地运行,也可以用它来改变init 状态的命令,还可以用init 状态(带用-i选择项)作为shutdown命令的参数。以下是四种系统状态类型: 1、 掉电(运行级0) 2、 单用户(运行级1和s或S) 3、 多用户(运行级2和3) 4、 重引导(运行级5和6) 若准备做系统管理工作,必须确定对系统及所需要做的工作来说哪种init状态是合适的。 1.3.1.1查看系统运行级 要查看某系统的运行级,键入who -r:即显示出运行级、日期及时间、进程终止状态、进程id、进程退出状态。 在下面的例子中,系统gtxa处在缺省多用户运行级(3),日期和时间是在Feb 6 15:46,进程终状态是3,进程id是0, 进程退出状态是S: gtxa%who -r run-level 3 Feb 6 15:46 3 0 S gtxa% 下面描述如何使用每个init状态。 1.3.1.2使用掉电状态,运行级0 用此级关闭系统以便安全切断电源。 1.3.1.3使用系统管理员状态,运行级1 当某项管理任务需要你是系统的唯一用户时,使用这一级,在这级状态下,只安装了root和/usr文件系统,只允许使用最少的核心实用程序,发出该命令的终端成为控制台,没有其它用户登录。 1.3.1.4使用多用户状态,运行级2 一般操作都在此状态下进行,在这级状态下多个用户可以访问系统和整个文件系统,除了nfs服务器、syslog和远程共享进程之外,所有的系统管理进程都在运行。 1.3.1.5使用远程资源共享状态,运行级3 此状态一般操作和nfs资源共享一起有效。 1.3.1.6使用替换多用户状态,运行级4 此运行级目前不用。 1.3.1.7使用交互重引导状态,运行级5 要从非缺省引导设备引导系统时,用此级。也可以用reboot -a 命令进入这个状态级。 1.3.1.8使用重引导状态,运行级6 使用此运行级关闭系统,使系统状态为运行级0, 然后重引导到多用户级(或到inittab文件中指定的缺省运行级)。 1.3.1.9使用单用户状态,运行级s或S 使用这一级使系统处于单用户状态,而所有的文件系统被安装且可访问。 1.3.1.10改变运行级 用telinit或init命令改变运行级,telinit命令需要一个单字符参数,此参数为init指定使用的运行级,尽管用户可以直接用init命令,但最好使用telinit命令去改变系统运行级。 1、 变成超级用户 2、 键入telinit n。参数n是要使用的init状态号。 要关闭系统 gtxa% su Password: # telinit 0 变成单用户状态: gtxa% su Password: # telinit 1 要变成无nfs服务器系统管理进程运行的多用户状态: gtxa% su Password: # telinit 2 要变到具有nfs服务器系统管理进程的多用户状态: gtxa% su Password: # telinit 3 要关闭且重引导系统到运行级3: gtxa% su Password: # telinit 6 1.3.2选择所用的关闭命令 准备做系统管理工作时,需要确定合适的关闭命令,下面介绍如何使用系统提供的关闭使命。 /usr/sbin/shutdown /etc/telinit and /sbin/init /usr/sbin/halt /usr/sbin/reboot 以上命令皆完成:初始关闭过程,杀死所有的运行进程,将新数据写入硬盘将Solaris系统关闭为适当的运行级。 1.3.2.1 shutdown 在多用户状态下关闭系统,使用shutdown命令,此命令将警告消息发送给注册到此系统的所用用户,等待60秒钟(缺省)后将系统关闭为单用户状态,可以选择不同的缺省等待时间。 1.3.2.2 telinit和init 用telinit或init 命令可以关闭一个单用户系统或改变此系统的运行级,init命令改变系统的运行级,telinit命令init 你想要的运行级,两者可交替使用,但telinit命令更好,可用telinit将系统置成掉电状态(init 0)或进入单用户状态(init)。 注意:telinit/init和shutdown命令是改变系统运行状态的好方法,由于它们是用一级rc shell程序来杀死行进程, 因此用这些程序来关闭系统是最可靠的方式。 1.3.2.3 halt 当系统必须马上停止且不必警告任何用户时,用halt命令。halt命令在关闭系统时没有任何延时也不给系统中的用户以任何警告。halt命令不运行任何 rc shell程序,所以不是一个关闭系统的好方法。 1.3.2.4 reboot 系统不在多用户状态下,用reboot命令关闭系统并重新引导到多用户状态,reboot命令不警告系统中的用户,不运行rc shell程序,所以不是一个关闭系统的好方法。 1.3.3 引导系统 如果系统电源被切断,则开启电源就开始了多用户引导过程。下面说明从ok PROM提示下引导系统到不同状态下的方法。如果PROM 提示是>;,键入n即显示出ok提示。 1.3.3.1 引导到多用户状态 要引导系统到多用户状态,在ok提示符下,键入boot,则在缺省驱动器上启动自动引导过程,显示一系列启动信息,最后系统进入多用户状态。 1.3.3.2 引导到单用户状态 要引导系统到单用户状态,在ok提示符下,键入boot -s,系统引导到单用户状态且提示输入root口令: ok boot -s
INIT: SINGLE USER MODE Type Ctrl-d proceed with normal start-up (or give boot password for system maintenance) 键入root口令,注意要继续将系统引导到多用户状态,则键入Control-D。 1.3.3.3交互式引导 如果想对系统文件或核心作暂时改动,可以采用交互式引导,在这种情况下,可以测试所作的改动,且当出现问题时很容易恢复。 1、 在ok>;的PROM提示下,键入boot-a,引导过程会按交互式方式提示你。 2、 若响应回车,即缺省/kernel/unix核心引导,若不用缺省核心,则键入要用的核心名称。 3、 若响应回车,即用缺省/etc/system文件,否则键入所用的系统文件名。 4、 若响应回车,即用缺省模块目录路径,否则键入模块目录路径名。 5、 若响应回车,即用缺省root文件系统,也可键入ufs从本地盘引导,或者键入ufs无盘客户。 6、 若响应回车用root设备的缺省物理名,否则键入想使用的设备名。 7、 若响应回车则用缺省交换文件系统类型swapfs(注意:swapfs是唯一允许的交换文件系统类型)。 以下例子中,接受的是缺省选择: ok boot -a (Hardware configuration messages) rebooting from -a Boot device: /sbus/esp@0,800000/sd@0,0 File and args:-a Enter[/kernel/unix]: (Copyright notice) Name of system file [/etc/system]: Name of default directory for modules [ ]: root filesytem type [ufs] Enter physical name of root device[/sbus@1, f8000000/esp@0,800000/sd@0,0]: Swap filesystem type [swapfs] configuring network interfaces: leo Hostname: gtxa (fsck messages) The system is coming up. Please wait. (More messages) gtxa login: 1.3.3.4查看引导信息 引导信息存贮在/var/adm/messages文件中,引导完系统后若要查看这些信息,键入/usr/sbin/dmesg或more /var/adm/messages,则显示引导信息。 gtxa% /usr/sbin/dmesg Jan 13 11:22 SunOS Release 5.0 Version [UNIX(R) System V Release 4.0] system file (etc/system) error: readline error on line 1. root nexus=Sun 4-60 mem=16384K (0x4000000) avail mem =14688256 Ethernet address=8:0:20:7:83:17 sbuso at obio 0xf8000000 dma0 at SBus slot 0 0x400000 exp0 at SBus slot 0 0x800000 SBus level 3(sparc ipl 3) sdl at sep0 target 1 lun 0 /sbua@1, f8000000/esp@0,800000/sd@1,0(sd1): sd3 at esp0 target 3 lun 0 /sbus@1, f8000000/esp@0,800000/sd@3,0(sd3): root on /sbus@ 1, f8000000/esp@0,800000/sd@3,0:a fstype ufs swap on swapfs fstype swapfs size 1348K le0 at SBus slot 0 0xc00000 SBus level 4 (sparc ipl 5) zs0 at obio 0xf1000000 sparc ipl 12 zs1 at obio 0xf0000000 sparc ipl 12 dump on /dev/dsk/c0t3d0sl size 32748K Dec 24 12:30:01 sendmail[82]:alias database out of date Dec 24 12:30:01 sendmail[82}: AA00082: message- in=<9112242030. AA00082@gtxa. Eng. Sun. COM>; Dec 24 12:30:01 sendmail[82]: AA00082: from=root, size=592, class=0, received form local Dec 24 12:30:02, stat=Sent Dec 24 12:30:58 sendmail[153]: network daemon starting Dec 31 15:20:24 rlogind[734]: pcktread: suspeet zero len fdo at obio 0xf7200000 spare ipl 11 cgsix0 at SBus slot 1 0x0 SBus level 5(spare ipl 7) cgsix0: screen 1152x900, single buffered, IM mappable 1 gtxa% 1.3.3.5增加新的硬件后引导系统 当系统中增加新的硬件后,boot命令必须使用-r选择项,以便使操作系统在引导过程中查看并装入新的设备驱动程序。 1、 按硬件中的说明装入新的设备驱动程序。 2、 关闭系统且安装新的硬件。 3、 键入boot -r并回车,则运行重配置shell程序,装入在模块目录中的所有的设备驱动程序且建立相应的硬件结点(nodes)。 1.3.3.6退回引导进程 在有些情况下,你也许想退出或中断引导过程,具体的中断键依键盘类型不同而有所不同,例如,可键入stop -A或L1 -A。在tty 终端上,键入Break键。要中断引导过程,键入系统对应的中断键,当中断引导过程后,监视器将显示ok PROM提示k 键入boot重新启动引导过程,或键入help显示一组帮助信息。如果终端示出>;提示,键入n获得ok提示。 1.3.4关闭系统 下面介绍如何用shutdown和init命令关闭系统。 1.3.4.1关闭一个多用户系统 在关闭一个多用户系统之前,要通知系统中的用户,给用户完成一些处理过程的时间。 1、 键入who,显示出注册的所有用户清单。 2、 键入ps-ef,显示出系统活动进程表,如果系统进程允许关闭,转到下一步。 3、 变成超级用户。 4、 键入cd /,必须在根目录下运行关闭命令。 5、 键入shutdown,系统要你确认是否要关闭系统。 6、 键入y,所有的用户将接收到一个消息,等待60秒后,系统关闭,进入单用户状态且提示键入root口令。 7、 键入root口令,系统处于单用户状态,这时可以进行维护工作。 8、 键入Control-D返回到缺省运行系统级。 # cd / # shutdown Shutdown started Fri Aug 6 10:50:35 EDT 1993 Broadcast message from root(console) on earth Fri Aug 9 10:59:35 THE SYSTEM IS BEING SHUT DOWN NOW!!! LOG OFF NOW OR RISK YOUR FILES BEING DAMAGED Do you want to continue?(y or n): y
The system is down. Changing to init state s-please wait.