第七讲:用户管理
系统管理员的用户理工作包括:为系统中所有用户建立帐号;以
及当改变用户环境、口令与组别时,进行维护。 分析用户需求
每当需要增加用户时,系统管理员都会先分析用户需求,对每个
帐号成分,通过使用默认选项来满足用户需求。要从sysadmsh中
查看默认记帐选项时,可以使用以下选择。
Accounts□□〉Defaults 或scoadmin□□〉Account Manager
当建立帐号时,评估用户需求,查看是否需要修改记帐成分。若
用户仅用一个应用程序,编辑用户的.profile文件,在用户注册 时,
每次均执行此文件。
默认值建立用户帐号(Default Parameter) 首先,打入用户注册名,
小写与三至八个字符;填写注解栏时,应包含标识信息,如用户全
名、单位、电话号码等。
另外,指出 是否愿意用系统默认方式建立帐号,抑或对帐号修改默认值,若
使用默认方法,则选No。确定你要增加的用户後,给出创建後的
文件和目录,再执行/tcb/lib/useshell命令,建立用户帐号.
不过,在UNIX系统命令中,要通过sysadmsh或scoadmin才能运行此命令。
若决定改变用户记帐默认方式,则在建立帐号时选Yes,那麽就需 要填写每栏,
在合适位置上,按〈F3〉或〈Esc〉,下面是关於非默认的设定。指定用户组
每个用户必须至少属於一个组。默认情况下,用户注册组是group。 在一个组内还包括
读、写和执行文件的权限,附加用户权限给那 个组,作为指定组员的存取权限集。如要
改变成组别,可用newgrp( c)命令。
增加用户时,可以创建一个新组,或附加到一个已存在的组内。 有关组别的信息则存放
在/etc/group中。凡增加用户创建新组 时, 组名会自动递加到/etc/group文件内。
组ID能够由系统产生或人工指定,但必须在100到60,000范围内,
100号以下的ID留给子系统和其他默认组用。当管理一个网络系统 时,
常需要指定GID(GroupID,组ID),避免混同各网络结点, 所以,最好先选用默认组ID。指定逻辑shell
要知道用户打算选用哪个shell工作,SCO系统可选用以下几种不 同的shell工作:
csh: C shell。
ksh:Korn shell,组合了Bourne shell和C shell的特点以及指 令行编辑。
rksh:加限制的Korn shell。
rsh:加限制的Bourne shell。
scosh:SCO shell(图型化桌面)。
sh:Bourne shell。
uucp:UNIX到UNIX拷贝功能,它本身不是shell,而是成功注 册後运行的程序。默认shell
在/etc/default/authsh中指定,从/usr/lib/mkuser目录结构内文件中,取到可采用的注册shell表。 指定主目录
默认主目录在/etc/default/authsh中定义,从/usr/lib/mkuser/homepaths文件中,
取到可采用主目录的选择。以及为用 户创建一个新的主目录。
指定用户ID
(UID)必须是在200到60000范围内,指定在/etc/default/authsh文件中,UID
必须是独一无二的,防止在网络上有相同的UID,而且,UID一旦设置,永不改变。
指定用户类
另外,还需要为用户设立他们的类别,种类如下:
individual:个人记帐类;
pseudo-usr:为各子系统任务设置帐号。
注册时个人不应给 pseudo usr记帐类,
Operator、security officer和administrator记帐类是 pseudo usr的其他名字。
不能设置superuser和retired记帐类。
如果要能使用su(C)(所变用户身分命令),该用户必需被指定为用户类individual,
才能取用此域,为了用su另外记帐,用户必须有su授权,知道帐号口令。
low、traditional和improved为 安全默认值,被赋予su授权。在high安全默认值下,
则不赋予su授 权。赋予用户被始口令
当创建新用户帐号时,就需要为用户设立或不选择不设立初始口 令。
-New:现在赋予口令,用户在注册时必需打入这个口令。
-Later:现在不赋予口令,在赋予口令前,用户不能注册。
-Blank:赋予空口令,用户能注册,但在注册时,强迫用户给出 一个口令。
-Remove:不赋予口令,用户能不用口令注册。
-Force Password
Change:决定在用户首次注册时是否要用户强 迫改变口令。
在high安全性下,必须为每个用户产生一个口令。若赋予初始口
令,就应该告诉用户他的口令,希望他在首次注册时,立即修改
这个口令,修改口令时,不要选用别人能够轻易猜出来的口令,
如姓名或生日日期等,最好在口令中,加有一个非字符。系统安全保护:
修改用户默认帐号 为了防止被人滥用别人的用户帐号注册进入系统内,保障系统的
完整性,系统管理员需要修改一些用户的默认帐号,以及检查用 户的注册情况。
首先,管理员会设定不成功注册最大次数,计算使用不正确口令 注册的次数;当
不成功注册超过最大次数,就设定加锁用户帐号和终端。如果在完成注册时间之内,
仍未能设置口令,也可加锁 用户的系统,甚至根户用也一样。
在成功注册後,希望享受优先 CPU调度, 则可以用nice(C)值,给用户shell及由
它启动的进 程,以调整优先级。
设定值会存放在/etc/system/default中。
第八讲:监视进程管理
程序是一个可执行文件(Process)是正在运行程序一个实例。
SCO UNIX System V支持许多进程同时运行,各种系统通过调
用可用进程去创建新进程,与其他进程通讯,以及终止其他进程。 进程族系
新进程创建时,内核会分配一个进程标识号(PID)给它,并对 进程表中添加说明讯息。
由一个进程创建另一新进程,老进程为父进程,新进程为子进程。
用户Shell执行的大多数命令又是它的子进程,子进程则运行命令。
而父进程允许有多个子进程来实现任务等,待子进程完成。一个
父进程可以有多个子进程,但是,一个子进程只有一个父进程。前台及後台进程
在Shell提示处打入命令後,创建一子进程运行命令,Shell等待
命令退出,然回到对用户提出提示符,这道命令与Shell同步运行, 即在前台运行。
在Shell提示处打入的命令,若随一个&,Shell创建的子进程运行此命令,但不等待
命令退出,而直接返回到对用户提出提示。这道命令与Shell同步运行,即在台运行。
$sleep 10 &精灵进程
精灵进程是一个进程,它与终端和用户都无联系,也有人喜欢称
他为管家婆。精灵完成一些周期性的事,平时它睡眠。用ps (C)
命令可看到精灵,它在tty区域中带有问号(?)。
-Sched:PID
0,它完成进程的程序在存储局和盘交换局之间交 换工作。
-init:PID
1,系统自动建的第一用户进程,它负责初始化引导和注册过程,也就是所有
非系统进程的祖先。它会在终端口上, 启动getty (M)进程。
-vhand:PID
2,页面精灵,它频繁地把储页面内容送往交换区。
-bdfush:PID
3,定期刷新高速缓到盘(默认情况,每13秒刷 新一次)
-logger:归档系统出错讯息。
-cron:在调度时运行作业。
-Ipsched:脱机打印精灵。孩儿进程
孤儿进程在父进程终止仍旧活动,由init(M)认它为乾儿子。 僵尸进程则是进程已终止,
但进程还未撤消,因为父进程并未「等待」它,进程表仍保留著这□体,进程表的□体
是僵尸进程所 消耗的资源。
随著新进程的创建,出现大量□体,但总数是有限制的,因此影 响新进程的产生。
而孩儿进程与僵尸进程不同,并不会影响系统 效率。
通常,在父进程死去时,才会移去僵尸进程。若他们还未移去, 应由init (M)继承并移去它。
监视进程
监视进程监注册户的数量,用以记系统的性能;亦会监视用户进程,包括挂起进程;
以及装载均值等系统性能问题。 要显示进程信息,可以利ps(C)命令报告,进程状态。
在默认 情况下,仅会报告与当前终端有联系的有关讯息。
若用户没有root权限,ps仅限以说明运行进程,报告用户的进程讯息。若用户有root权
限,则会报告在所有终端上所有用户的进程讯息。
$ ps-u joana
--u 〈username〉选项显示指定用户的讯息。
--t 〈ttynamt〉选项显示指定终端有关的进程讯息。
而ps -elf命令则提供了需有F、S、C、PRI、NI、TIME字段的 使用讯息。
-F是标记,指示进程位置,20表示在内存,0表示交换在盘上, 31是系统进程。
-S是状态讯息,指示进程状态,睡眠还是正在运行。
-C是进程占有CPU的百分率
-TIME是花费CPU的总时间。
-PRI是进程当前优先数
-NI是进程的nice
(ADM)菜单
如何创建进程
当进程分岔一个子进程,自己就会进入睡眠状态。开始时,子进程运行父进程
的同一程序,由内核分配一个新的PID。当子进程再去执行新的程序,保持新分
配的PDI,新程序就会替代子进程 的原先程序。
当子进程完成後,内核会把它从系统中移去,再唤醒父进程,子进程就会退出。监视系统装载
uptime(C)命令显示装载均值(一分钟、五分钟和十五分钟),
即在预定时间上,排队运行进程的平均数:
$uptime W(C)命令产生如uptime(C)一样的装载均值讯息,并显示谁在
系统上做甚麽,若用户拥有root权限,W报告所有用户的有关讯 息。 若没有
,仅显示与用户进程有关竹的讯息。
PCPU(Process CPU,进程CPU时间 )显示某道特定命令已运行多久了。
对控制不了的进程,这种检查是很有用的。
JCPU( JointCPU,连合CPI时间),显示一个终端所涉的所有进程的总时间。
sar(ADM)命令是一个系统活动报告程序,显示系统资源累积 利用率。
为指示系统瓶颈口(Bottleneck),sar是非常好的实 用程序,命令语法如下:
$sar〔-option〕 〔 sample-interval-samples〕
例如:$sar-u120
-u选项显示CPU利用情况。如果%idle一致地低,使用效能是上升,
不过,运行的进程偷不到未用的CPU周期。
又例如使用-q选项显示进程吞吐量。假若%swpocc大於20,就发生
交换(Swapping),可以使用大内存能减少交换 /请负活动。
第九讲:管理进程 文:Santa Cruz Operation, Inc.
用低优先级运行进程 nice(C)命令用於以较低的调度优先级执行命令,每个进程都有
一个nice 值,用於计算它的优先级。nice 值在 0 到 39 范围内, 高值获得低优先级,
不给实参的默认情况是 nice 值20。超级用户可指定负值,以提高优先级。在注销进程後进程继续执行
後台启动的进程,默认情况下,当注销後就不再存在,但是,可 以使用
nohup(c)命令,让进程不受挂起和注销影响,得以继续 运行,例如:
$ nohup sort bigfile>sortfile & 4567
$ exit
当用户注销时,用户未用输出改向,输出将送到当前目录下的 nohup.out
文件中,如果当前目录不可写,则输出改向到 $HOME/nohup.out。
重新启动安全级精灵进程
根据 C2安全级要求,某些精灵进程用 LUID (Login User Identifier)标记运行,如此只能用
sd(ADM)实用程序重新启 动他们。 如果 LUID 限制有效的话(高安全级),只能用 sd(ADM),
例 如
cron(C)这样的精灵,在高安全级下要 sd 重新启动它。 进程终止实用程序
需要终止实用程序时,可以通过发信息给进程,使它自杀,通常会用在终止
一些已挂起的或是运行的进程。
语法如下: $ kill [-signal]
例如 $ kill 4411 4411:terminated 这样,只能终止运行优先级大於 25 的进程,小於 25
优先级的进 程只能在重新引导系统中撤注它。调度单个作业执行at(C)命令使得在某指定时间执行一组命令一次,主要用於在系统
活动较少的情况下,在预定时限(例如在半夜後或每日固定时间) 内运行命令。
要重新定向,可以使用标准输入,或可文件输入;在打入完整的 at命令後,
就会显示出将要运行的作业号与时间。 语法如下:
$ at time [date] [increment] < [filename]
任何用户都能运行一个 at 作业,但必须给予授权。 指定单个作业调度时间时间格式
为 hr:min 或 min,hr ,用a.m 或 p.m 指定上午或下午, 有效时间包括 no on,midnight 和 now,
指定日期则用「月日 〔年〕」格式,
例如 Feb14。
一星期那一天也可用 monday、 mon、today 或 tomorrow 代替。
.at命令从标准输入中,读入打算在以後某一时刻所执行的命令:
$ at 14:00 Jan sort /u/user1/file /u/user1/sort ctrl>d
job 61202778.a at Thu Jan 4 14:00:00 1996 记著使用时,要用全路径名指定文件。命令输出以
电子邮件发送给用户,也可输出改向到文件或终端。
列出单个调度作业 使用命令
$ at -1 job 612027780.a at Wed Jan 24 08:43:00 1996 job 612027900.a at Wed Jan 24 08:43:00 1996
若指定 jod_id,一般用户会得到一张自己所有作业的表,根用户 则能取得全部作业的表。撤消单个调度作业
使用以下命令撤消作业:
$ at -r 可以使用匹配符撤销多个作业。at 的作业存放在 usr/spool/cron/atjobs
在一般数据库上调度作业 用 crontab (C)命令,从指定文件或标准输入拷贝或编辑成用户
的 crontab文件,该文规定了在指定日期和时间调度运行一些指 令。
crontab 命令提供了对 cron系统精灵要执行的作业,清理 /tmp , 撤销在一般数据
上日记文件或不想要的文件,以及检查空间,邮寄警告予用户等。
/usr/lib/cron/cron.allow 文件列出了能使用 cron 的用户,
/usr/lib/cron/cron.deny文件列出了拒绝存取 cron 的用户,
仅 当 cron.allow 文件不存在时,cron.deny 文件才起作用。指定作业及其调度时间 作业可能是单个命令或包含多道命令的 shell 脚本,命令输出邮
寄给用户,也可输出改向到文件或终端。在文件中打入作业及运行时间,以运行此作业。
文件可取任何名字,但是,不允许包括首尾部和空白行,而且,最好取 .cronfile,
这种取名反映其功 能,易记易理解。.cronfile 文件可用正文编辑或 vi 创建。
每个用户仅提供一个.cronfile文件,每当执行 crontab 命令时, 新文件会盖写原先文件。
编辑已存在的 .cronfile 文件,增加或修改一个作业,然後用 crontab 重新提交 .cronfile 。
而每个用 户的登记项会存放在/usr/spool/crontabs/。列出或修改 cron 作业 要列出当前提供的 cron 作业,可以打入:
$ crontab -1
修改 cron 项,使用命令:
$crontab -1 >.cronfile
$ vi .cronfile
$ crontab .cronfile
如要撤销 cron 作业,则打入:
$ crontab -r
但有一样,请留意,根用户没有 .cronfile 文件。第十讲:打印管理 Santa Cruz Operation, Inc.
打印假脱机(Spooler)程序在系统引导时自动启动,负责打印服务的安装、配置和管
理,在指定打印机上,将用户打印请求进行排队,能在不丢失排队打印请求下暂停打印。打印机队列
打印机会被分组,每组共同存取一个队列(class)。而打印请求 可以送入一个 class,
也可送往指定打印机上。 在一个 class 中,可随时移去或增加打印机,用 sysadmsh 菜单或
scoadmin 的 PrintManager,可以增加打印机往已有的 class 中, 又或增加一个新 class。打印机过滤程序
使用打印机过滤程序,可以转换用户文件或数据流,在给定打印机上,合适地打印出来;
处理两边打印,草图或高质量文字打印等;如发现打印失败,会通知打印服务,然後告
诉用户使用上出 现问题。
打印机过滤程序又称为打印机定义的接口脚本,存放在 /usr/spool/lp/bin。安装和配置打印机
要把打印机接到并行口(Parallel Port)上,SCO UNIX System V支持两个物理并行设备
(/dev/lp[0-2])。当用主并行口时,用 LP0 或 LP1,中断向量为7。
第二个并行口,/dev/lp2, 中断向量同为 7。
要把打印机接在串行口(SerialPort)上,最好接上智能卡工作, 打印机能用任意有效串
行埠名联系。若不要求硬件流控制,可以使用非调制解调器控制埠名。
另一方面,可以从终端辅助埠上做局部打印,命令
lprint (C)使用户从附在终端上的打印机上打印。安装打印机
要安装打印机,先找一个未用的串行线路接上打印机,连好导线, 打开打印机开关,检查
硬件连接。然後,调用 sysadmsh 菜单或 Print Manager 上,加入打印机,用合适的信息填好
格式,指定打印机的Class,若所指定的不存在, 就建立一新 Class,包含接口脚本路径名。
许多打印机都能用 standard 接口脚本。
打印机管理
修改打印机配置时,可以增加或撤消目的地;改变打印机接口脚本、设备等;以及改变默认
打印机目的地。 管理打印机调度时,有几种选项需要注意:
-Stop:为实现某种打印机维护,必需将假脱打印机转换成 off。
-Begin:假脱机转换成 on。
-Accept:允许把打印请求送往打印机或 class 中。
-Reject:阻止请求假脱机打印。
-Enable:允许从打印机或 class上打印。
-Disable:阻止打印,但允许假脱机出现。
每个打印请求都会赋予一个优先数,决定何时打印,优先数据取 值范围为 0(最高)到 39
(最低)。默认优先数值同样是 20。 所有打印请求或单个打印请求都能移到不同的队列或
打印机上,若打印机的队列阻塞或打印机不能用,就要移去打印请求;打印机要维护,也要
移去打印请求。如果已移去了所有请求,这个打印机就不再接受新请求,直到打印机启用为止。
要清理打印机请求,先要指出打印机或请求 ID,若指定了打印机, 则当前正在打印的作业也
被清除,但是,不能使用通配符去匹配 清理打印请求。第十一讲:TCP/IP 管理 IP(Internet Protocol)地址是 TCP/IP网上为主机之间数据
选择路径(交换)的基础,但是,用户通常不甚喜欢使用由数字 组成的 IP
地址,而比较喜欢使用多由英文字母组成的主机名字 URL(Uniform Resource Location)。
不过,主机名字必需映像到 IP 地址,而方法