HPUX系统管理员手册.docx
《HPUX系统管理员手册.docx》由会员分享,可在线阅读,更多相关《HPUX系统管理员手册.docx(69页珍藏版)》请在冰豆网上搜索。
HPUX系统管理员手册
第一章系统管理简介
目标
完成这一章,你能够做以下事情:
明确系统管理员的责任
1.1系统管理员的角色
系统管理员的职责就是设置和维护系统。
系统管理员不仅必须了解硬件和软件,而且必须了解用户组的需求。
由于与这些职责相关的命令不是让每个人都可以使用的,系统管理员需要对系统有特殊的权限,这种权限就叫做超级用户或者叫root存取。
1.2硬件方面的职责
硬件的职责
建立并且维护系统硬件
检验并正确安装外部设备并且对其进行测试。
监控硬件的性能。
在硬件设备出现故障的时候安排进行修复
系统管理员的职责中有配置和管理系统硬件设备。
系统管理员可以不是实际安装这些硬件的人员,通常硬件厂商的工程师会给你安装硬件。
一旦系统开始运行,系统管理员就必须监视系统中不同硬件的性能,如果硬件发生故障,系统管理员应该试图尽可能隔离这些故障,然后让硬件工程师来进行必要的修理。
系统管理员必须知道一些基本的系统硬件如何工作的知识。
1.3软件方面的职责
安装和配置操作系统
创建文件系统
保证文件系统的一致性
监控系统资源的使用
计划和实施备份和恢复。
配置和维护打印缓冲系统软件
安装和维护网络通信软件
升级操作系统的版本
安装和升级应用程序
如果你的系统没有预装操作系统,你可能需要安装操作系统。
操作系统的媒介可能有多种形式,软件分发可能是一系列的磁带或者是CD-ROM。
分发的介质有:
压缩的磁盘:
只读的磁盘(CD-ROM)
数字数据存贮磁带(DDS),
4英寸的盒式磁带(QLC),(只用于服务器)
系统管理员必须将系统软件安装到硬盘上。
一旦系统安装完成,就必须配置软件,方法是修改某些值或参数。
这样做的目的是让操作系统能识别附加的设备或增强系统的效率。
操作系统利用文件系统来组织数据。
由于所有的系统和用户的数据都是存储在文件系统中,所以保证文件系统的一致性十分重要,系统管理员应该执行一些操作来检查文件系统中的错误,如果发现错误就必须进行一些改错的操作。
文件系统的大小是有限的,并且通常存在于本地的磁盘上。
系统管理员必须监控一个文件系统有效空间。
并且应该使用一些程序来备份和删除废弃的或是不用的文件,这样才能保持有效的存储空间不被过分消耗,那些不时会增长的文件也需要监视。
系统资源不仅仅包含磁盘的存储空间,还包括内存,外部设备,和内核的数据结构,系统管理员可以定制和监控这些资源使其保持在一个合适的范围内。
确保系统中数据的安全也是系统管理员的一个任务,通常都要做系统数据的备份,这样如果有用户错误或者硬件错误导致的数据丢失,可以使用备份数据来恢复。
一些UNIX系统还会使用外围设备,如行式打印机,激光打印机。
系统管理员必须管理输出到这些打印设备的软件。
不同的UNIX系统通过一种电子通信机制来相互联接,这种机制叫做网络。
通过网络,你可以发送电子邮件,在机器和机器之间传送数据。
系统管理员必须安装,配置和监控网络软件。
操作系统和其他子系统和应用程序都可能有升级版本出现,升级可以提高或者修正程序的特征,或者增加新的功能。
系统管理员有责任升级系统中的软件以满足用户的需求。
1.4对用户的责任
对用户的责任
允许用户按其需要来使用系统。
评估用户的需求。
计划未来系统的增长和改变。
为用户提供帮助。
为你的公司/组织使用计算机系统和网络系统制定规章和程序。
一旦系统安装完毕,就要求指定一套用户使用系统的规范。
系统管理员有责任制定这些规范。
系统管理员必须尽可能规划系统以满足用户组的需求。
系统管理员应该分析系统将来的用途,清楚系统中的用户的情况,每个用户需要的系统资源和外围设备,和不同用户组需要共享的数据和程序。
任何系统管理员都会被视为系统的专家,用户会认为你知道系统中的任何事情,并且会将你看作专家,这与你的知识水平有无关。
在许多用户的脑子里,“你必须知道”比他们要作的更多。
你可能会被问许多问题,例如“我该如何办...”和接到一些如“我的终端坏掉啦”或“我忘记了我的密码”等报告,这些问题对系统管理员的角色非常有挑战性,也是这个工作的最有意思的部分,但是,如果用户习惯于在来问你之前试一试自己查找帮助手册,这样会使你每一天的工作的被打断的次数减少到最少,并且用户会有更多的信心来使用系统。
第二章创建和管理用户帐号
目标
完成这一章,你能做以下事情:
列出建立一个用户帐号步骤
理解/etc/passwd文件的每一个字段的含义
理解/etc/group文件的每一个字段的含义
创建、修改和删除用户的帐号
启用和禁用一个用户帐号
1.1用户与用户组—使用系统资源和数据
为了使用系统的资源,用户首先要登录系统,系统管理员可以控制其它用户登录系统,可以阻未授权的用户运行程序,消耗系统资源,还可以控制其它人对存储在系统中的数据的存取。
系统中的用户被分成一个或多个用户组。
一种典型的情况是:
文件可以被一个组的用户存取,但是不能被用户组之外的用户存取。
用户对文件和目录的存取都是基于他所属的组的定义。
你为每一个使用你的系统的用户分配一个用户名(或叫登录名),同样也能选择组和决定哪一个用户被分配到哪一个组。
用户可以使用命令/usr/bin/id来检查自己的用户ID和所属的组ID。
1.2用户帐号的定义
用户想要登录一个系统,必须要有一个有效的用户名,用户ID号,密码,和在/etc/passwd中定义的其它的帐号信息。
通过修改文件/etc/group,用户可以属于其它的组。
最后,多数的用在/home目录下都有一个目录,在这个目录下,他们可以存储属于自己的文件和目录。
你可以通过命令行useradd,userdel,和usermod或者用vi编辑器来管理用户的帐号。
1.3/etc/passwd文件
/etc/passwd文件中包含用户登录所必须的信息。
文件的每一行代表系统中的一个有效用户。
所有的域以冒号(:
)作为分割符。
用户名用户名是用户在登录时候使用的命令。
用户名的长度应在1到8个字符之间,第一个字符必须是字母。
如果用户名超过8个字符,只有前8个字符有效。
密码经过加密处理的口令。
当用户使用passwd命令设置密码的时候,系统会对用户输入的口令进行加密。
密码应该是6到8个字符,其中应该有一个数字或其他特殊字符。
如果密码这个域为空,登录的时候就不需要密码,但这会使系统很容易被入侵。
密码域为星号的用户帐号无效,因为你键入的任何字符都不能被加密成为星号,所以没有人可以使用这个帐号登录系统。
用户ID系统中每一个用户都被分配一个用户ID号。
ID号为0是为root保留的。
UID号1-99是为系统其它预定义的帐号保留的。
组ID号组ID号(GID)。
这个号码对应/etc/group文件中一行信息。
ID字符窜这是一个注释字段,你可以在这里加上关于这个用户的其他的信息。
例如用户的全名,电话号码,部门,和门牌号,行打印缓冲系统和finger命令会使用这个字段中的内容。
Home目录当用户登录时所在的目录的绝对路径名。
如这个目录不存在,或是无效,用户就不能登录系统。
shell当用户登录系统时要执行的命令的绝对路径名,典型的情况下,这个命令是shell,通常使用的shell是/user/bin/sh,/usr/bin/ksh,和/usr/bin/csh。
如果这个字段为空,系统会默认为/usr/bin/sh。
命令字段不必都是一个shell,例如,你可以在/etc/passwd文件中创建一个条目:
date:
rc70x.4.hgjdc:
20:
1:
:
/:
/usr/bin/date
在这里命令字段为/usr/bin/date。
如果使用date作为登录名,然后键入正确的密码,系统会运/bin/date命令。
然后退出系统登录。
注意;passwd文件的许可权限只能被设置为只读(r—r—r--)同时属主必须为root。
编辑/etc/paswd文件
当你正在用vi命令来编辑/etc/passwd文件时,一个用户正试图更改他的密码,这个用户的更改不会写到这个文件中,为了避免这种情况出现,在编辑/etc/passwd文件时请使用vipw命令
$vipw
这个命令通过拷贝/etc/passwd文件为/etc/passwd.tmp文件,并对/etc/passwd文件进行锁定。
如果这时有一个用户想要更改密码,他会被告之passwd文件正在使用。
当你使用完vipw,系统会进行一些检查,如果你的修改正确,临时文件会被移动到/etc/passwd中。
否则,/etc/passwd文件会继续保持不能被修改的状态。
检查/etc/passwd文件
使用/usr/sbin/pwck命令可以检查/etc/passwd文件的一致性。
它会检查每一行的域的数目,登录的目录和登录执行的程序是否存在,验证登录名,用户ID和组ID。
1.4/etc/group文件
/etc/group文件中包含有组的定义,组的字段使用冒号(:
)分割。
组名一个关于这个组的助记符。
如果你对一个文件使用ls-l命令,你会看到在“组”域中的名字会显示出来。
密码通常都没有被使用,所以为空。
如果你需要要设置组的权限,这个域可以是一个经过加密的组密码。
组ID组ID(GID)。
这个号码就是在文件/etc/passwd中的组ID字段中的号码。
这个号码为组的成员共享,推荐系统管理员在创建组ID号的时候大于100,这样可以避免同当前和将来的系统需求冲突。
组员列表:
组的成员的用户名的一个列表。
在有的unix操作系统中,不是所有的组的成员都在/etc/group文件中列出。
用户初始登录组是在/etc/passwd文件的第四个域中定义,而不是在/etc/group中定义。
请注意,一个用户可以同时属于不同的组,使用newgrp命令可以切换到不同的组中去。
$newgrpgroup_name
命令执行后,这个新组会成为用户的有效组。
切换到新的组不会不会更改/etc/passwd文件中的关于用户的主组的定义,而仅仅会更改在使用newgrp命令后,用户创建的任何文件的组的定义。
不带任何参数执行newgrp名会返回这个用户在/etc/passwd文件中被分派的组。
使用/usr/sbin/grpck命令可以检查/etc/group文件的一致性。
这个命令可以检查每一行的域的数目,和是否所有的登录名都在/etc/passwd中存在。
1.5使用命令行管理用户帐号
useradd,usermod,userdel
groupadd,groupmod,groupdel
管理帐号和组的一种方式是使用命令。
使用useradd命令会在/etc/passwd和/etc/group中增加一行,使用这个命令还可以选择同时创建用户的home目录、shell和自动拷贝一个目录下的文件到用户的home目录下。
语法;
useradd[-uuid[-o]][-ggroup][-Ggroup[group]][-ddir][-sshell]
[-ccommand]–m[-kskeldir]]login
其中-o选项允许多个UID,-m选项使建立home目录。
其中的许多的选项都是默认的。
例子:
1)为用户renay创建一个帐号,并且建立一个/home/renay的home目录。
使用/etc/skel作为框架目录,/usr/bin/sh作为shell。
并且使用下一个最高的UID。
useradd–m–s/usr/bin/shrenay
2)为名叫Tracy的用户创建一个帐号。
Tracy的主组为staff,tracy同时也是pe和chemistry组的成员。
创建一个home目录,而剩下的项目都使用默认值。
useradd–m–gstaff–Gpe,chemistrytracy
显示useradd命令的默认值。
useradd–D
更改默认的组为其他的组
useradd–D–gothers
使用userdel命令删除用户。
语法为:
userdel–rlogin
-r选项:
在删除用户帐号的同时会删除用户的home目录。
groupadd命令语法为:
groupadd[-ggid[-o]]group
例子:
增加一个叫economics的组。
使用大于ID号100,并且最接近100的有效的组ID号。
groupaddeconomics
1.6使用命令行方式更改用户的密码
任何用户(普通用户和超级用户)更改密码都需要使用passwd命令。
通常用户都能更改自己的密码(但是不可以修改别人的密码)。
当使用这个命令的时候,用户被提示输入当前的密码,然后再输入新的密码,然后系统会要求你再输入一次新密码,目的是为了验证和避免输入错误。
如果第二个密码同第一个密码不一致,密码不会被修改,并会会退出到shell提示符下。
如果用户忘记了他的密码,他必须寻求系统管理员的帮助。
系统管理员可以通过passwd命令修改任何用户的密码。
有一个选项在创建用户帐号的时候可以禁止用户修改他们的密码。
在这种情况下,只有超级用户可以修改这个用户的密码。
当更改或是分配一个用户的密码的时候请注意以下事情:
密码至少6个字符。
虽然可以超过6个字符,但只有前6个有有效。
密码中必须要有两个字母(大写或小写字母),至少有一个数字或特殊的字符,这主要为了密码的安全性考虑。
注意:
当你使用passwd命令的时候,系统会创建/etc/passwd文件的一个拷贝名为/etc/opasswd的文件。
你也可以用passwd命令来更改一个密码的时限。
passwd–f–nmin–xmaxname
min和max都是以天为单位。
-f选项会强迫用户在下一次登录的时候修改他的密码。
例子:
限制帐号fontana的密码的有效期限
passwd-n7-x35fontana
强迫用户buddy在下一次登录的时候修改他的密码:
passwd–fbuddy
第三章:
定制用户帐号
目标
学完这一章,你将能够做以下事情:
列出在登录过程中读取的配置文件
更改默认的用户PATH
更改默认的用户终端类型
更改用户提示符
更改用户命令行编辑器
更改用户默认打印机
管理/etc/skel中默认的配置文件
为什么要定制用户帐号
设置用户终端类型
定制用户提示符
设置用户默认终端,定制用户PATH变量
定义一个命令行编辑器
如果只是简单地在/etc/passwd和/etc/group文件中创建条目可能不能满足用户所有需求,例如:
你可能需要定义用户的终端类型,以便应用程序可以正确地输出到用户的屏幕上。
你可能需要定制用户的提示符。
因为许多的用户喜欢在提示符中显示他们当前所在路径名
虽然系统管理员定义了一个系统默认打印机,但是有些用户可能会要求使用另外的打印机。
如果用户要使用第三方的软件,你可能需要修改他们的PATH变量,以便shell可以找到这些应用程序。
如果用户希望使用命令行编辑和命令历史机制,需要特殊的配置。
你可能希望为新用户配置这些功能。
一些例子
exportTERM='vt100'
exportPS1='$PWD$'
exportLPDEST='laser'
exportPATH=$PATH:
/usr/local/bin
exportEDITOR=vi
exportHISTSIZE=40
exportHISTFILE=~/.sh_history
上例中提到的特性是在登录的时候,通过“环境”变量来定义的。
一些经常修改的环境变量如下
TERM
TERM变量定义了用户的终端类型。
如果TERM变量设置不正确。
应用程序就可能不能正确地写到用户的终端。
有效的终端类型全部在/usr/lib/terminfo/*目录下列出。
你可以使用如下类似的命令来准确的设置一个TERM类型:
exportTERM=vt100#对应一个vt100类型的终端
exportTERM=hp#对应一个HPASCII终端
exportTERM=dtterm#对应一个dtterm终端模拟窗口
你也可以使用ttytype命令来设置你的终端变量。
这个命令通常可以自动识别你的终端类型。
以下的代码可以加入到你的登录时运行的脚本中,为你设置你的终端类型:
if["$TERM=""-0\
"#TERM"="unknown"-o\
"#TERM"="dialup"-o\
"#TERM"="network"]
then
eval'ttytype-s-a'
fi
exportTERM
PS1
PS1变量定义你的shell提示符。
这个提示符也可以由用户自己来修改。
一些有用的PS1的值如下所示:
exportPS1='S'#使用一个简单的"$"提示符
exportPS1='$PWD$'#在提示符内包括用户的pwd
exportPS1='$PWD($LOGNAME)$'#同时包括用户的用户名
LPDEST
LPDEST定义了用户默认打印机。
在LPDEST中设置的打印机会优先于系统管理员设置的系统范围内的默认打印机。
例子:
exportLPDEST=laser
exportLPDEST=printera
PATH
用户每次输入一个命令,shell就必须去查找这个命令的可执行文件的位置。
PATH变量中包含有一个以“:
”分割的路径的列表,shell在这些列表中查找可执行文件。
如果用户需要使用一个新的应用和工具,你也许会需要修改你的PATH变量。
你可以使用以下类似的语法来在用户的PATH中增加新的目录:
PATH=$PATH:
/usr/local/bin#在已存在的PATH中增加/usr/local/bin这一个路径
初始化的PATH变量通常取自/etc/PATH文件。
通常安装一个应用会自动更新/etc/PATH文件,所以不用单独地设置用户的PATH。
EDITOR
如果你的用户想要使用命令行编辑,需要定义三个变量:
exportEDITOR=vi
exportHISTFILE=~/.sh_history
exportHISTSIZE=50
EDITOR定义用户选择的命令行编辑器。
emacs和vi是唯一允许的两个值。
HISTFILE代表记录用户输入的命令的文件名。
HISTSIZE决定保存在shell的命令缓冲区内的命令的数量。
这些仅仅是你能为你的用户定义的普通的环境变量的一部分。
其它的环境变量的定义可以在POSIXshell的帮助中查找,你的用户也可能需要用到其它的变量。
环境变量可以在命令行中定义,但是更通常的做法是在登录配置文件中定义,这会在以下的章节中介绍。
用户登录的时候发生了什么?
虽然定制一个用户的登录环境的环境变量可以在命令行中定义,但是通常是在登录过程中执行的脚本中定义,典型的,有三个脚本被用于在用户登录时初始化环境。
第一个脚本是由系统管理员维护的一个脚本文件,用来为所有的用户定制通用的环境变量。
第二个脚本是每个用户自己维护的本地脚本文件,本地登录脚本能覆盖和修改系统默认的脚本。
另一个可选的脚本:
附加的本地登录脚本能够定义附加的环境变量或者设置附加的shell特征。
在POSIXshell中,附加的脚本通常用来定义shell别名。
登录脚本的名字在各种shell中都是不同的。
以下是POSIX,Korn,和Cshells的登录脚本的详细讨论:
Shell环境初始化的顺序
1.shell运行正确的系统登录脚本,这个脚本初始化用户的环境。
系统登录脚本定义一个默认的环境,这个脚本可以由系统管理员定制。
如果shell是.....系统登录脚本是....
Bourne(/usr/old/bin/sh)/etc/profile
korn(/usr/bin/ksh)/etc/profile
POSIX(/usr/bin/sh)/etc/profile
限制的shell(/usr/bin/rshr,/usr/bin/rksh/etc/profile
C(/usr/bin/csh)/etc/csh.login
这些脚本定义和输出的环境变量有PATH,TZ,TERM,其来源于/etc/PATH,/etc/MANPATH,/etc/TIMEZONE,/etc/SHLIB_PATH这些文件。
由于这个系统登录脚本在所有用户登录的时候都会运行,系统管理员可以通过修改这个文件来为所有用户设置默认环境变量。
这种特性还可以让每一个用户在登录系统时执行一些基本的命令。
2.显示/etc/copyright和/etc/motd文件中的内容。
3.提示用户没有阅读的新闻:
news:
news_filename
4.shell运行在用户的home目录下的用户的本地登录脚本(如果存在)。
如果shell为.....本地登录脚本为....
Bourne(/usr/old/bin/sh.profile
Korn(/usr/bin/ksh).profile
POSIX(/usr/bin/sh.profile
限制的shell(/usr/bin/rsh,/usr/bin/rksh.profile
C(/usr/bin/csh).login
注意:
在典型情况下,系统管理员在最初创建用户帐号时,会为每个用户创建一个本地的登录脚本。
如果使用useradd命令来添加一个用户,它会拷贝默认本地登录脚本文件(/etc/skel/.profile)到这个用户的home目录下。
用户可以自己继续修改这个文件来定制他们的环境变量,以满足自己的需要。
在这个脚本之外,POSIX,Korn,和Cshells可能(通常都会)有另外的本地登录脚本:
-POSIX和kornshell-:
如果定义了ENV变量,shell会运行在ENV中定义的文件(典型的,.shrc在开启一个新的shell的时候执行,许多程序(例如,vi,和mailx)运行用户在程序执行中开启一个shell;这被称为一个shellescape,一个shellescape会要求重新执行一次ENV文件,而.profile只会在登录的时候执行。
ENV文件(.kshrc或者.shrc)会在登录时,.profile文件执行后执行。
-Cshell:
在一个新的Cshell启动的时候运行.cshrc文件。
这和KornshellENV文件的工作方式类似。
.login文件只在登录的时候运行,每一次开启一个新的Cshell的时候会重新运行.chsrc文件。
一旦所有的初始化工作都完成后,shell会出现一个提示符等待用户的输入。
/etc/skel目录
当使用useradd命令创建一个新用户帐号的时候,系统会拷贝一些默认的配置文件到新用户的home目录下。
/etc/skel目录下的默认的配置文件包括:
/etc/skel/.profile#ksh/posix本地登录脚本
/etc/skel/.login#csh本地登录脚本
/etc/skel/.cshrc#csh附加登录脚本
/etc/skel/.exrc#vi启动配置文件
如果你想要修改自动拷贝到新用户home目录中的默认配置文件,你可以