免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zhyesno
打印 上一主题 下一主题

[SCO UNIX] SCO OpenServer系统手册 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2006-01-10 10:45 |只看该作者

第15章 文件系统的管理


  1. 15.7.3 文件系统检查阶段(DTFS)
  2.     当你检查和修复 DTFS文件系统时,fsck(ADM)实用程序无需人工干预就自动修复不
  3. 一致性,并按如下的步骤报告每一阶段的消息:
  4. *  *  phase  l - Check  Super  Block
  5. *  *  phase  2 - Check  File Structure
  6. *  *  phase  3 - Check  Directory Entries
  7. *  *  phase  4 - Check  Block Bitmap
  8.     每一个阶段都会比较某些部分,并检查它们是否与其它部分相吻合:
  9.     Phase  l  fsck读文件系统的 i节点映象(i节点位图)和初始化文件系统的块映象表(块
  10.              位图)。
  11. Phase 2   fsck读 i节点号并检查其有效性。DTFS的文件是通过一个称之为"B十树"
  12.          的结构来管理的。这棵树是由磁盘块地址组成的,而这些磁盘块地址要么指
  13.          向中间块(称之为"内部节点")或实际用户数据块(称之为"叶节点")。这
  14.          棵树结构通常是平衡的(从最高层到"叶子"的距离在树中的所有路径是一
  15.          样的)。
  16.              fsck验证父 i节点并重新平衡已变得不平衡的 i节点。
  17. Phase 3   fsck重建目录的层次结构。因为 DTFS的 i节点包含父目录的 i节点号和 I
  18.          节点文件名,重新构造非常容易并且不需要 lost+found目录。若有 i节点
  19.          不能重新连接或包含无效的数据(坏 i节点),则 i节点位图就会更新,块位
  20.          图也会跟着更新。
  21.     Phase 4  fsck更新超级块中的信息。
  22.     若要看完整的出错消息,请参见 fsck(ADM)手册页。
  23. 15.7.4 UNIX系统如何维护文件和文件系统
  24.     文件系统的数据并不是以文件为单位存储在硬盘的某个位置,相反,一个文件的数据很可能会散布在整个硬盘中。这是因为操作系统并不真正处理文件,而是处理数据单元。例如,当你创建一个文件时,这个文件可能存储在磁盘的某一部分。而当你再编辑该文件,并在文件的这儿或那儿删除了一些句子时,你可能不需要原来那么多的磁盘空间来存储该文件,这时在你原来存储文件的地方就可能出现了"空隙"。由于磁盘的空间对系统来说是很珍贵的,系统就会把那些"空隙"分配给其它文件。
  25.     每个文件系统都有自己特殊的结构允许操作系统来访问和维护存储在文件系统中的文
  26. 件和数据:
  27. Data blocks   数据块。磁盘中的"一块"一般在1024字节为单位(DTFS文件系统会
  28.             根据磁盘的容量来改变块的大小以便最大限度地利用空间)。数据块一般
  29.                 包括目录项或文件数据;而目录项包括 i节点号,文件名和用于 undelete
  30.                 (C)的版本号(文件复原)。
  31.     Inodes       i节点。i节点(信息节点)包含了除文件数据以外的所有与文件有关的信
  32.                 息,如文件的位置、大小、文件类型、许可权、属主以及链接数(链接该
  33.                 文件的目录数)等。i节点还包含了组成文件的所有数据的地址,这样操
  34.                 作系统就可以在需要时把文件的所有数据组合起来。i节点所不包括的只
  35.                 是文件的名称和内容(文件名包含在目录项中)。在 DTFS文件系统中,I
  36.                节点还包含文件父目录的 i节点号和 i节点的名称。此外,DTFS文件系
  37.                统的 i节点并不像其它文件系统那样是在文件系统创建时静态分配的,
  38.                其空闲的 i 节点数会随着有效空闲空间的变化而变化。
  39. Superblock  超级块。超级块是一个特殊的数据块,它就象 i节点包含文件的信息一
  40.            样,包含整个文件系统的信息。超级块包含安装文件系统和访问其上数据
  41.            所必需的信息,如文件系统的大小,空闲 i节点数以及有效空闲空间的信
  42.            息。 当文件系统安装后,系统会把磁盘上超级块的内容读入内存中。
  43. Buffer      缓冲区。为了减少对磁盘上数据的搜索,系统把最近使用的数据块保存
  44.            在内存中一个特殊的结构中,该内存区称之为缓冲区。缓冲区使得操作系
  45.            统变得更为有效。根据文件系统的类型以及核心参数的设置,缓冲区可定
  46.            时"刷新"(写到磁盘中)。
  47.     一些文件系统的配置机制影响到事务的管理和处理。有些会影响数据的完整性,有些会影响到恢复系统时的表现。
  48.     Intent logging(意向日志):当这个特征激活时,文件系统的事务会记录在磁盘上的日志
  49. 文件里。它的操作很简单,但却能增进系统恢复的速度。
  50.     Checkpointing(检查点进程):当这个特征激活时,每个文件系统都会周期性地检查并
  51. 标记为干净。而一个干净的文件系统在系统挂起后无需使用 fsck进行检查。它也像意向日
  52. 志一样,操作简单方便。
  53.     Sync-on-close(DTFS)(关闭时同步):这个特征模拟 DOS的表现,文件数据在文件关闭时立即写到磁盘中。这个特征会明显降低系统的执行性能,

  54. 15.8维护文件系统中的空闲空间
  55.     系统管理员的一个重要职责就是要给所有的用户保留足够的磁盘空间。要做到这一点,
  56. 你就必须时常监视每个文件系统的空闲空间,并在空闲空间太少时,采取一些必要的措施。
  57. 磁盘上的空闲空间取决于磁盘的容量及其已存储的文件。要查看一个文件系统中有多少有
  58. 效的空闲空间,请参见 "显示文件系统和目录的使用统计"。
  59.     UNIX系统在每个文件系统的空闲空间不少于15%时,能保持最佳的运行状态。当文件系统的空闲空间少于15%时,操作系统的反应就会变得迟钝。
  60.     当文件系统没有空闲空间或空闲空间少到不能正常工作时,系统就会显示如下信息:

  61.     NOTICE: clalloc- Out of space on EAFS dev hd(major/minor)

  62. 其中(major/minor)是指主、次设备号,如 hd(l/42)表示根文件系统。当文件系统耗尽空间时,系统就会停止往文件系统中写文件。这时,若想恢复系统的运作,你就必须删除或减少该文件系统中的文件。
  63.     如果空闲空间少于15%,我们可以采取如下措施:
  64.     (l)删除 /tmp 目录下的文件。
  65.       在默认情况下,cron将每天清理一次 /tmp和/usr /tmp  目录。你也可以修改文件
  66.       /etc/default/cleantmp来定义要清理的目录和清理周期。参见 cleantmp(ADM)手
  67.       册页。
  68.     (2)提醒用户删除自己不再使用的文件。
  69.        你可以在/etc/motd中设置消息,也可以发 e-mail,还可以往终端上发消息以
  70.        提醒正注册的用户。
  71.     (3)查寻大文件并要求属主将其删除。
  72.     (4)查找并删除系统临时文件。
  73.       参见 "查找临时文件"。
  74.     (5)清除系统日志文件。
  75.       参见 "检查和清除系统日志文件"。
  76.     (6)备份不常用的数据,并把它们删除。
  77.   例如,/usr/adm目录下的数据,如/usr/adm /sa下的 sar数据以及/usr/adm
  78.   /acct 下的数据等都不怎么常用,我们可以使用备份管理程序先将它们备份,然后
  79.   再删除。
  80.     (7)压缩不常用的数据。
  81.        参见: compress(C)手册页。
  82.     (8) 将一些小文件归档到一个大文件中,以释放 i节点。
  83.        参见: tar(C)手册页。
  84.     (9)增加磁盘空间。
  85.        参见 "增加磁盘空间和重构文件系统"。
  86.     (10)使用 VirtuaI Disk Manager(虚拟磁盘管理程序)来增加磁盘和增大文件系统的
  87.     (11)若你无法再增加磁盘空间,并且文件系统类型不是 DTFS,你只需重构文件系统
  88.        并把它改为 DTFS类型就可得到更多的空间,因为 DTFS数据压缩文件系统允许
  89.        你通过压缩数据来增加文件系统的存储能力。2.8.4节"增加磁盘空间和重构文
  90.        件系统"会引导你如何去校正你的磁盘布局。当重建文件系统时,一定要将其选为
  91.        DTFS类型。
  92. 15.8.1显示文件系统和目录的使用统计
  93.     在 Fliesystem Manager(文件系统管理程序)上,从 View菜单中选择Disk space,将显
  94. 示磁盘使用情况的统计数据。通常可显示如下数据(以 MB为单位):
  95. ?        文件系统中总的磁盘空间
  96. ?        目前已被占用的磁盘空间
  97. ?        空闲空间
  98. ?        目前已被占用的磁盘空间所占的百分比
  99.    要显示 i节点使用情况的统计数据,从 View菜单中选择 Inode Usage。通常可显示
  100. 如下数据,
  101. ?        目前已使用的 i节点总数
  102. ?        空闹的 i节点数
  103. ?        目前已使用的 i节点数所占的百分比

  104. 若要显示某个目录所占用磁盘块数,请在命令行下使用 du(C)命令:
  105.     du   directory
  106. 选项directory必须是已安装的文件系统上的目录名。若未给出目录名,du将显示当前目录
  107. 所占用的块数(在默认情况下,du所报告的块数是以512字节为一块,若想以1024字节为
  108. 一块,请使用-k选项)。例如:
  109.     du  /usr/james
  110. 命令将显示/usr/james目录下的每个子目录的名字及其相应的块数,并显示整个目录所占的总块数,
  111. 使用-a选项可以显示选定目录下的所有文件,-s 选项将只显示总块数。如,若只想显示/usr/james目录所占的总块数,请键入如下命令:
  112.     du -s /usr/james
  113. 就会看到类似如下的消息:
  114.     49790 /usr/james
  115. 若要显示一系列用户所占用的空间块数,请在命令行下使用 quot(ADM)命令
  116.     quot filesystem
  117. 例如,若要显示/dev/usr下文件的属主及其所占用的块数,请键入:
  118.     quot/dev/usr
  119. 将显示文件系统/dev/usr下所有文件的属主及每个属主所占用的空间,格式如下:
  120. /dev/usr:

  121. 74534  james
  122. 49262  johnd
  123. 36506  root
  124. 15470  bin
  125. 15.8.2定位文件
  126. find的语法格式如下
  127.    find pathname option
  128. 其中,pathname是要查找的文件目录名,option将设置查找的条件。find命令将递归地搜索pathname目录下的所有子目录以查找满足option条件的文件。
  129. 注意:
  130.    若你要显示满足搜在 find的命令中就必须包含 -print


  131. 按名字寻找特定的文件(-name选项)
  132.     例如,要定位并显示/usr目录下所有名为 temp的文件,应键入如下命令
  133.      find  /usr  -name   temp  -prin直
  134. 接文件大小的临界点查寻文件(-size选项)
  135.     例如,要定位并显示根目录下所有大于3块的文件,应键入如下命令:
  136.      find  /  -size十3  -print
  137. 按文件属主查寻文件(-user选项)
  138.     例如,要定位并显示/work目录下所有属于 hcy的文件,应键入如下命令
  139.     find /work  -user hcy  -print
  140. 按文件类型查寻文件(-type选项)
  141.     例如,要定位并显示/usr/spool /uucp 目录下所有的目录,应键人如下命令:
  142.     find  /usr/spoo1/uucp  -type d -print
  143. 按文件的许可权查找文件(-perm onum选项)
  144.     其中onum是指在 chmod(C)中使用的八进制权限数。
  145.     例如,要定位并显示/usr目录下所有授予所有用户可读、可写以及可执行权限的
  146.     文件(onum数为0777),应键入如下命令:

  147.     find /usr  -perm  0777-print
复制代码

论坛徽章:
0
42 [报告]
发表于 2006-01-10 10:47 |只看该作者

第15章 文件系统的管理


  1. 15.8.3 查找临时文件
  2.   临时文件一般是程序在运行过程中产生的,它们通常在程序执行完毕后会自动被删除。但若程序在执行过程中出错或被人为地终止,这些临时文件就会存留在文件系统中;而这些文件的名字一般也取决于创建它们的程序。在绝大多数情况下,这些临时文件对用户毫无用处,你可以很安全地删除它们。
  3.   你可以使用 find和-name选项来定位临时文件,以便删除。例如,若你想查寻/usr目录下所有名为 temp的临时文件,并将它们显示出来,你可以使用如下命令:
  4.     find /usr -name  temp -print
  5.   当然,为了能更安全地删除文件,你也可以在搜索临时文件时,附加一个文件无人访问的期限限制。例如,若要查寻/usr目录下文件名为temp,并且超过一周(-atime十7)无人访问的文件,请键入如下命令:
  6.     find /usr  -name  temp -atime十7  -print
  7. 一旦定位了文件,你就可以使用 find的-exet选项自动地删除这些文件。
  8. 15.8.3.1执行基于 find输出的命令
  9. 你可以使用-exec选项来针对 fSnd定位的文件执行特定的 shell命令。-exec最常见的用途就是将 find已定位的一组文件删除。
  10. 例如,若要查寻/usr文件系统下所有超过7天无人访问的 core文件,请键入如下命令:
  11. find  /usr  -name  core  -atime十  7  -exec rm "{}"\;
  12. 有些时候,一个用户闲置后,可以先使用 find命令定位并备份所有属于该用户的文件,然后再将它们删除。要做到这一点,你可以按如下两步进行:
  13. find  /-user  hcy -print  | cpio -ovBc>/dev/rfd0
  14. find  /-user  hcy -exec  rm  "{}"\;

  15. 第一行命令将所有属于 hcy的文件备份到软盘中,第二行命令则将它们从文件系统中
  16. 删除。
  17. 若想在使用 find命令时,由用户最后决定是否执行相应的 shelI命令,请用-ok替换
  18. - exec选项,如:
  19. find /-user  edwarda -ok  rm  "{}"\;
  20. 在这种情况下,find会提示如下消息:
  21.   <rm…/u/edwarda/billboard>?
  22.   若要执行该命令(上例是 rm),请键入 y,否则按其它任意键都将不执行该条命令。
  23.   find的-exec选项的另一个常见的用法是定位一组文件并改变它们的组属性。如果
  24. hcy用户换了一个组,想使用 find把所有文件的组属性都作相应的改变,就可键入如下命令:
  25. find  /-user  hcy -exec chgrp pubs "{}"\;
  26. 类似地,你也可以改变一组文件的属主。例如,用户 hcy被闲置后,你想将他所属的文件转让给ghl,可用如下命令:

  27.     find /-user  hcy -exec  chown ghl  "{}"\;
  28.     使用这种命令结构可以很方便地处理某一类文件,但当一组文件中所含的文件太多时,运行的速度就会很慢,因为-exec选项会为每个文件创建一个进程。一个有效的解决方法就是使用 xargs(C)命令来替换-exec选项。相对来说 xargs命令会针对整组文件创建较少的进程。
  29. 注意:
  30.      以root 注册,使用find 和xargs 不当时,会对系统的安全造成威胁。


  31. 下行命令给出了如何与 find一起使用 xargs命令的例子:
  32.     find /-user  hcy -print | xargs chown ghl
  33. 这条命令与上一条命令的结果是一样的,只是这条效率更高一点
  34. 15.8.3.2 检查和清除系统日志文件
  35. SCO系统中通常都保留了相当数目的包含系统使用信息的日志文件。当一个新的信息产生时,系统就会将它附加到相应的日志文件后,并保留文件先前的内容。由于有些日志文件会迅速地膨胀,你应当定期地做些检查,在必要时把一些文件的内容清空。
  36.     你可以使用以下三种方法来管理这些日志文件:
  37. "        使用 System Logs Manager(系统日志管理程序)
  38. "        在命令行中清理系统日志文件
  39. "        自动清理日志文件
  40. 表列出了系统中最需要清理或整理的日志文件。你系统上的日志文件也许会和表
  41. 中列出的有所出入,这完全是由于你的系统配置、实用程序或安装的应用程序不同而引起
  42. 的。你可以根据系统的活跃程序,对表中列出的检查文件的周期做相应的调整。此外,你还可以使用 find来查找那些这里没有列出的日志文件。
  43.     表  管理日志文件
  44. 日志文件        作用或说明        检查周期
  45. /etc/wtmp        注册历史记录        自动
  46. /usr/adm/pacct        进程记帐日志文件        一星期
  47. /usr/adm/messages        系统消息日志文件        一星期
  48. /usr/adm/sulog        Su (C) 日志文件        自动
  49. /tcb/audittmp        审计系统临时文件        一星期
  50. /usr/spool/uucp/LOGFILE        记录UUCP 工作请求,文件传送以及系统状态        一个月
  51. /usr/spool/uucp/.LOG/.Old/*        由uudemon.clean 存储的旧日志文件        一个月
  52. /usr/spool/lp/logs/requests        记录打印请求        自动
  53. *你可以让系统自动地维护这些文件,请参见"自动清理日志文件"。
  54. 15.8.3.3使用系统日志管理程序
  55. 你可以使用存储在 SCOadmin层次结构的System/Logs目录下的 System Logs Manag
  56. er(系统日志管理程序)来检测、清理或打印日志文件。System Logs Manager会显示当前日
  57. 志文件列表以及选定的文件内容。
  58. 要显示一个日志文件的内容,只需从文件列表中选择文件即可。
  59. 要在日志文件中进行模式搜索,在"Search(搜索)"字段中键入搜索模式,然后按 next
  60. 或 prev按钮来搜索匹配的模式。
  61. 要打印一个日志文件,请先从文件列表中选择文件,然后从 Flie菜单中选择 Print。
  62. 要增加一个新的日志文件,从 Log菜单中选择 Include Log。系统会要求你提供要增加的文件及其注释。
  63. 要从列表中删除一个日志文件,请先从列表中选择文件,然后从 Log菜单中选择 Ex
  64. clude  Log。
  65. 要清理一个日志文件的内容,请先从列表中选择文件,然后从 Log菜单中选择
  66. Clear  Log.
  67. 15.8.3.4从命令行清理系统日志文件
  68. 若要清理日志文件并维持其原有的许可权,请按如下步骤:
  69. (l)将文件内容复制到另一个新文件上,如:
  70.     cp  /usr/adm  /messages  /usr/adm/messages.old
  71.          (2)用如下命令清除日志文件:
  72.         在 Bourne或 Korn sheII环境下:
  73.      >/usr/adm/messages
  74.         在 C shell环境下:
  75. cat/dev/nulI>  /usr/adm/messages
  76. 若要监视当前附加到系统日志文件上的新信息,请键入:
  77. tail -f /usr/adm  /messages
  78. 其中,tail(C)命令的-f选项将显示文件的最后10行,并会把在你启动和终止 tail命令期间附加到该文件上的新信息也立即显示出来。
  79. 15.8.3.5自动清理日志文件
  80.   你可以使用 crontab(C)和 cron(C)来自动地清理日志文件。你只要在 root的crontab文件(/usr/spool / cron / crontabs / root)上增加相应的一行,就可让系统周期地(如每天一次,每周一次,每月一次等)执行你自己的文件维护脚本程序。
  81.   下面是 root的 crontab文件中默认的登记项格式:

  82.     17 5  *  *  0 /etc/cleanup>  /dev/null
  83.   该登记项将在每个星期天的上午5:17执行/etc/cleanup程序。
  84. 15.8.4 增加磁盘空间和重构文件系统
  85. 如果一个系统经常缺少空间,很可能是当前的硬盘容量无法支持它所拥有的用户量或者仅仅因为系统中的目录和文件实在太多。无论哪种情况,你都可以通过增加新硬盘来解决。你可以在新硬盘上创建新的文件系统,并把一些用户和目录转移到新的文件系统上,这样就可显著地增加现有文件系统的空闲空间,提高系统的操作性能。或者,你也可以在新文件系统上开展新工作。有关增加硬盘的细节,请参见"增加硬盘"。
  86. 有时基本硬盘中有多个文件系统,苦其中一个文件系统已满,而其它的文件系统却还有大量的空闲空间(或硬盘中还有未用的分区),你可以考虑改变基本硬盘的布局来利用那些还未占用的空间。不过,这个过程比简单地增加一个附加的硬盘要困难。
  87. 若你要改变硬盘中的文件系统数量或要划分文件系统的空间,请按以下步骤进行:
  88. ( l)给系统上每一个文件系统做一个完整的备份。
  89. (2)按照"安装和升级过程"的步骤,重新安装系统。
  90. (3)从文件系统的备份中恢复数据。
复制代码

论坛徽章:
0
43 [报告]
发表于 2006-01-10 10:48 |只看该作者

第15章 文件系统的管理


  1. 15.9 维护文件系统的有效性
  2. 文件系统使用过程中的以下三个问题会降低文件系统的有效性:
  3. 磁盘碎片  磁盘碎片是指零星分布在文件系统中的空闲磁盘块,它们往往是由
  4.          于文件系统的一些区域多次循环使用产生的。
  5. 过分庞大的目录  是指拥有庞大数目文件(与文件大小无关)的目录会增加系统搜索该
  6.                 目录的时间。
  7. 空目录槽  空目录槽是由于一个目录中有大量的文件创建后被移走或删除引起的,它
  8.           会导致目录变得过分庞大(只针对 EAFS, AFS和 S51K等类型的文件系
  9.           统)。
  10. 15.9.1 减少磁盘碎片
  11.   如果你的系统已使用了一段时间,并经常有文件的创建和删除等操作,常常会导致磁盘碎片的产生。磁盘碎片通常是指零星分布在文件系统中的空闹磁盘块。碎片的增多会使得文件系统中的文件断断续续地写在磁盘中的小块空间中,从而增加访问文件的时间,降低文件系统的有效性。
  12. 要减少 EAFS,AFS和 S51K等类型文件系统的碎片,请按如下步骤操作:
  13. (l)给系统上每一个文件系统做一个完整的备份。
  14. (2)删除硬盘中的所有文件。
  15. (3)从文件系统的备份中恢复文件。
  16.    这个过程就是把所有的文件重新写一遍,这时每个文件都会集中地写在硬盘的某一区
  17. 域中,从而减少了磁盘碎片,使得所有的有效空间都集中在一起。这样的做法也会恢复一小部分空间。
  18. 任务繁重的系统每年应该做一次,通常你应根据自己系统的实际情况来决定是否采取
  19. 这个措施。
  20. 15.9.2监视和限制目录大小
  21. 为提高系统的操作性能,应该限制一些关键目录的文件数量和文件名长度。
  22. 对 EAFS,AFS和 S51K等类型的文件系统,应把工作目录(如注册目录)的文件数目限制在62(加上目录中必需的"."和".."项)。因为,若目录中的文件少于62个,目录的数据区可以存储在单一的磁盘块中,便于迅捷地搜索。而像 spool等存储数据的目录,可以允许其包含638个文件项。
  23. 要检测一个目录是否过大,可键入:
  24. l .  x|wc -l
  25. 这条命令会给出目录中的文件数目。若文件数大于62(对工作目录)或大于638(对 spoo1
  26. 目录),就会影响到系统的执行性能,需要采取相应的措施。如在该目录中建5一10个同级目录,再把文件分类存储在不同的子目录中。系统管理员应教会所有用户在注册目录下建立-些子目录,从而让注册目录维持在较小状态。
  27. 一旦目录中的文件数目超过最大值(62个或638个),则光靠删除文件并不能使目录
  28. 变小。这是因为当你移动或删除文件时,目录中会留下一些空目录槽,从而使得目录的大小保持不变。因此,若你的目录中曾删除(或移动)过大量的文件,这时尽管目录中留存的文件很少,该目录仍是庞大的,因为它保留了许多空目录槽。在这种情况下,你只有通过减少空目录槽才能减少目录的大小。
  29. 15.9.3 删除空目录槽
  30. 在 EAFS,AFS和 S51K等类型的文件系统中,当文件删除或移出时,会在原目录中留下"空目录槽"(也称"影子文件")。这些空目录槽会降低目录搜索的速度从而影响系统的操作性能(但在 HTFS和 DTFS文件系统中,空目录槽会自动地合并消失,没必要专门地去删余它们)。
  31. 要检测目录中是否包含空目录槽,可键入如下命令:
  32. hd. | wc  -1
  33. 1  | wc-l
  34. 第一行命令会显示 i节点数,第二行会显示目录中的文件数目. 。若目录的 i节点数明显地要比文件数多,此时系统的操作性能就会受到影响。
  35. 要查看空目录槽,请键入:
  36.     hd .
  37. 这时,你就会看到如下的列表:
  38. 0000  8c 17 2e 00  0000  00  00  000000000000  00  00     。。。。。
  39. 0010  4e ld 2e 2e   0000  00  00  000000000000  00  00     N…..
  40. ….
  41. 0090
  42.   影子文件一般出现在列表的末端,其 i节点号为空。如上面列表中,每行的头两列16进制数表示 i节点号,最后七行头两列值均为00表明其为影子文件。
  43.   要从目录中删除空文件槽,请按如下步骤操作:
  44.   (l)改变目录到要整理目录的父目录中,创建一个备份目录。例如,若要删除 spool
  45.     目录/usr/spool/uucp/pdxbox 中的空目录槽,请键入如下命令:
  46.     cd  /usr/spooI/uucp
  47.     mkdir pdxbox.old
  48.   (2)改变目录到要整理的目录中,使用 cpio(C)做备份:
  49.     cd  pdxbox
  50.     find  .-print | lcpio-pdlm ../pdxbox.old
  51.     这条命令会把该目录及其所有的子目录复制(若可能,将只做文件链接)到备份目
  52.     录中。
  53.   (3)证实已对所有文件做了备份,并且备份中每个文件的属主,组属性和许可权都与源文件相同:
  54.     cd ..
  55.     I  pdxbox  pdxbox.old
  56. (4)使用 hd来检查备份目录,确认备份目录中已无空目录槽:
  57.     hd pdxbox.old
  58.     这时输出的列表中应没有具有空 i节点号的文件(头两列的值均为00)。
  59.   (5)删除原始目录,即需要整理的过大的目录:
  60.     rm -rf  pdxbox
  61.   (6)给备份目录改名,将其恢复为原始目录:
  62.     mv pdxbox.old  pdxbox
  63.     该目录看起来同原来的一模一样,但搜索起来快多了。
  64.    你只需按照以上的步骤整理所有过大的工作目录和 spool目录,就可以提高系统
  65.    的运行性能。
复制代码

论坛徽章:
0
44 [报告]
发表于 2006-01-10 10:51 |只看该作者

第16章 管理用户账号


  1. 第16章  管理用户账号
  2.     用户账号的建立使得系统管理员能保留使用系统的人员的踪迹并控制他们对系统资源
  3. 的访问。账号也使得用户可以方便地组织自己的文件,并控制其他用户对它们的访问权限。
  4.     管理账号要牵涉到以下几个方面:
  5.     ● 用户--增加、修改和删除
  6.     ● 用户组--增加、修改和删除
  7.     ● 口令--设置和控制
  8.     ● 注册--控制镇定和注册限制
  9.     ● 权限--设置超级用户权限
  10.     ● 安全--改变安全特征文件
  11.     ● 故障排除--用 Account Manager(账号管理程序)解决问题。
  12.     Account Manager提供了一个方便的、对话式的方法来执行绝大多数的账号管理任务。
  13. 16.1  Account Manager(账号管理程序)界面
  14.     Account Manager(账号管理程序)允许你建立或修改用户账号。你可以使用以下的任一种方法来启动 Account Manager(账号管理程序):
  15.     ● 在桌面系统的系统管理(System Administr ation)窗口中双击Account Manager帐号管理程序图标。
  16.     ● 在命令行键入scoadmin启动 SCO admin系统管理程序, 然后选择Account Manager(账号管理程序)。
  17.     ● 在命令行键人 scoadmin account manager(或缩略语:scoadmin a)。
  18.     有关使用 SCOadmin系统管理程序的细节,请参见《SCO OpenServer系统手册》(本系列丛书之一)相关章节,
  19.     在 Account Manager(账号管理程序)的显示主屏上包括系统上现有账号的列表,见图
  20. l-l,在 Status(状态)栏里的国标(或字符)表示账号的类型和状态。在默认情况下,为确保启
  21. 动时显示的信息保持最简略,Status栏是不出现的。要显示状态信息,可在 Option的菜单上选择 Show Status。


  22. 警告: 如果你的系统里有非常多的帐号,那么收集状态信息将会占用很长的时间并会延迟
  23. Account Manager(账号管理程序)的启动,在这种情况下最好不要使用Show Status.


  24. 16.1.1 关于选项的默认值
  25.   许多Account  Manager (账号管理程序)的选项有多重选择:YES ,No(或单一的数值型)
  26. 值)以及 Default(默认值)。当你选择 Default选项时,并不意味着只是简单地使用一个已复
  27. 制到用户账号里的固定值。相反,它会随着系统默认值的改变而动态地改变。在 SCO Ac-count Manager(账号管理程序)里,系统默认值的改变会立即影响到所有的账号。因此,在配置用户账号时对用户比较确定的项设定一固定值,而对要求大家统一的项可以设定一动态值。
  28. 16.2增加和修改用户账号
  29.     在 Account Manager(账号管理程序)中,从 Users的菜单里选择 Add New User来增加
  30. 用户账号,或先在用户列表中选定一账号,再从 Users的菜单里选择 Modiry来修改用户
  31. 账号。
  32.     在增加新用户时,你只需键入名字和设置一个口令即可。如果你选择 Set password later
  33. (稍后再设置口令),该用户将不能注册。这时,你可以按照1.4.1节"设置或改变用户的口令"中描述的方法给该用户账号设置口令。
  34.     你还可以改变以下这些账号的属性,否则将采用系统默认值:
  35.     ● 用户 ID号
  36.     ● 注释(任选项)
  37.     ● 口令
  38.     ● 注册 shell
  39.     ● 分布式(本地或 NIS)
  40.     ● 起始目录
  41.     ● 注册组
  42.     ● 组成员
  43.     ● 注册控制和锁定
  44.     ● 权限--包括授权和特权
  45.     ● 用户类型
  46.     ● 用户进程的优先级
  47.     要改变系统默认值,从 Options的菜单中选择 User Defaults。
  48.     你也可以在命令行中健入:
  49.          useradd  username
  50. 来创建用户账号。这时,账号的属性将采用默认值,除非你使用 useradd的选项来替代相应的属性值。
  51.     参见:
  52.     ● 删除或闲置用户账号
  53. ●        复制用户账号
  54. ● 使用账号模板
  55. 16.2.1  使用账号模板
  56. 账号模板是指那些包含账号属性列表(如组成员和特权等)的文件,用于账号命令行实
  57. 用程序。


  58. 注意: 模板对Account Manager(账号管理程序)无用,它们只能用于账号命令行实用程序.


  59. 下面是一个模板示例,template l,它设置了几个属性,包括组成员、核心特权、注册
  60. 限制口令限制和授权等:

  61. {grouPs(gedemondan cziIIian dillian type4l oolakash))
  62. {kernelAuths(chown execsuID  Su)}
  63. {maxLoginAttempts 8}
  64. (passwdExpirationTime 60)
  65. (passwdLifetime 120)
  66. (passWdRunGenerator 1)
  67. (SubsystemAuths(Printerstat printqueue queryspace))

  68. 模板可用于创建新账号、修改已有的账号或改变系统默认值.
  69. 下面是使用模板template1为用户mavrac创建账号的命令:
  70.    useradd -X template1 mavrac
  71. 这个新账号将采用除了列在模板文件中的值之外的所有默认账号值。若要修改已有的
  72. 账号只需简单地用 usermod命令替换 useradd即可。  '
  73. 也可以使用模板文件修改账号默认值。假设你想用模板文件template1中的值替换当前
  74. 的系统默认值,可以使用如下命令:
  75.   usermod -D -X template1
  76. 可以用命令userls列出账号的属性,并借此创建模板文件。例如:以下命令将把用户
  77. mavrac的属性转到文件 templatel中:
  78.   userls -1 mavrac -A >template1
  79. userls的输出包含了账号的所有属性,也包括了那些不可更改的状态属性(如上一次注
  80. 册的时间)。你不能直接把它当作模板文件,但可以把它当作蓝本来编辑你所需要的模板
  81. 文件。
  82. 参见:
  83. ●        userls(ADM)手册页
  84. ● groupadd(ADM)手册页
  85. ● groupls(ADM)手册页
  86. 16.2.2删除或闲置用户账号
  87. 在 Account Manager(账号管理程序)中,选择一用户名,然后从 Users菜单中选择
  88. Delete(删除)或 Retire(闲置)。但如果你的系统安全级别属于增强的(Improved)或高级的
  89. (High),就只有 Retire有效。
  90. 删除或闲置一个用户账号并没有删除用户的文件,系统管理员只能手工地删除用户的
  91. 目录。此外,在别的地方也还会有属于该用户的文件。如何处置这些文件可参见第1.2.5节"改变带有无效 UID/GID文件的属主"。

  92.    注意: 在高级安全级别(C2级)的操作系统里,用户永远有能从系统中删除.一旦创建了一  
  93.    个用户, 其UID号永不能再用.这时, 只能将其闲置或从服务中删除. 在其它的安全级别
  94.    里, 用户可以从系统中彻底删除. 要使UID号可以重用并与安全模式无关,你应在/ etc/
  95.    default / login文件中定义REUSEID=YES.


  96. 参见:
  97. ● 重新启用闲置用户账号
  98. ● rmuser(ADM)手册页(用于命令行界面)
  99. ● unretire(ADM)手册页(用于命令行界面)
  100. 16.2.3重新启用闲置用户账号
  101. 使用 unretire(ADM)命令,用真正的用户账号名替换下一行中的username:
  102.     unretire username
  103. 该账号即可被重新注册.


  104.   注意: 在高级安全级别(C2)的操作系统里,用户永远不能从系统里删除账号.因此在高级
  105.   别的安全模式里,unretire将不起作用.

  106. 16.2.4设置和修改用户和组的 ID号(UID/GID)
  107.     每个用户和组都有一个标志号(UID或 GID),这个 ID号将会标记在那些出现在本地和以 NFS安装的文件系统中的所有文件、目录和进程上。当你创建新用户或组时,系统会自动地设定一个新的 UID或 GID号,但你可在相应的宇段中设定另外一个。


  108.    警告:在网络环境中,每个用户和组都必须有一个在整个网络环境里唯一的ID号,而不仅  
  109.    仅是在自已的主机上. 详细资料请参见<SCO OpenServer网络指南>(本系列从书之四)中  
  110.    的"建立对等用户"和"配置网络信息服务(NIS)".


  111.     要改变已有用户和组的 ID号,可使用 usermod(ADM)或 groupmod(ADM)命令。但请
  112. 注意,改变用户或组的 ID号并不能改变该用户或组所拥有的文件上的 ID号。系统管理员可以按照1.2.5节"改变带有无效 UID/GID文件的属主"中的描述手工做这些更改。
  113.     若要改变创建新用户时 UID的取值范围,可以选择 Option菜单中的 User Defaults。若要改变创建新组时 GID的取值范围,则可以选择 Option菜单中的 Group Defaults。


  114. 注意: 在高级安全级别的操作系统里,UID将不能改变;而在其它级别下, UID可随意修改.


  115. 参见:
  116. ● usermod(ADM)手册页(用于命令行界面)
  117. ● groupmod(ADM)手册页(用于命令行界面)
  118. ● 管理组
  119. ● 在目录里设置文件创建时的组 ID
  120. 16.2.5改变带有无效 UID/GID文件的属主
  121.     如果改变或删除了一个 UID或 GID号,属于该用户或组的文件就成了"孤儿",你必须改变那些"孤儿"的属主,并检查文件系统中是否还有其它"孤儿"文件。那些没有真正属主的文件,在相应的属主和/或组的名字宇段将出现数字,如:

  122. -rw-r-r--   l   obie   pub  68476 Nov 16 12:06 accts.s
  123. -rw-r-r--  l  15625  pub    508 Oct 31  11:15 balance
  124. -rw-r-r--  1  obie   pub  40596 Aug31  13:19  report.2

  125.     在上面的示例中,文件如balance就是一个"孤儿"文件。属主宇段出现的数字是因为文件上打的戳记是 ID号而不是用户或组名。
  126.     我们可以使用实用程序 find(C)来查找和改变文件的属主。下面这条命令将找到系统
  127. 中所有属于用户口UID的文件,并将其属主改变为用户 newowner:
  128.       find / -user UID -print | xargs -t chown newowner
  129. 而下面的命令则会改变组属性:
  130.   find / -group GID -print | xargs -t chgrp newgroup

  131. 注意:这两上例子都对整个系统进行了搜索(包括本地和远程的所有已案装的文件系统).若只搜索单一文件系统,由只要用路径名替换" / "即可.此外,也可以使用-mount选项来跳过已安装的文件系统,或用-local选项来限制系统只搜索本地文件系统.


  132. 除了改变属主,也可采取其它措施,如将那些文件归档(见"定位文件")等
  133. 参见:
  134. ● find(C)手册页
  135. ● xargs(C)手册页
  136. 16.2.6 改变用户注册组
  137. 在 Account Manager(账号管理程序)上,选择好用户名,然后从 Users菜单中选择Modiry选项。再单击 Change Group Membership(改变组成员)按钮改变 Logig Group(注册组)宇段的值。
  138. 注册组是用户所属的默认组,用户创建的文件和目录都属于该组。用户可以使用 sg(C)
  139. 命令暂时改变注册组。


  140. 注意: 如果把一个用户添加到一个并不存在的组中,那么就给你一个创建它的机会.当用户用这种方式设置用户注册组,该组就不会出现在"Member of"栏里,这是正常的.


  141.     若要改变系统默认的注册组,请从 Options菜单中选择 User Defaults
  142. 参见:
  143. ● 管理组
  144. ● 改变用户的组成员资格
  145. ● usermod(ADM)手册页(用于命令行界面)
  146. 16.2.7改变用户的组成员
  147. 在 Account Manager(账号管理程序)的界面上,先选择好用户名,然后从 Users菜单中选择 Modify选项。再单击 Change Group Membership(改变组成员)按钮。
  148. 若要把用户加到某一组中,在"Other Groups(其它组)"栏里选择相应的组名,然后单击add按钮。
  149. 若要从某一组中删除用户的成员资格,可先在"Member of"栏里选择相应的组名,然后单击 Remove按钮。
  150. 还可以在"Search for,,宇段输入组名来查找特定的组。
  151. 若要为新用户改变默认的组集合,请选择 Options菜单中的 User Defaults选项。
  152. 参见:
  153. ● 管理组
  154. ● 改变用户注册组
  155. ● usermod(ADM)手册页(用于命令行界面)
复制代码

论坛徽章:
0
45 [报告]
发表于 2006-01-10 10:52 |只看该作者

第16章 管理用户账号


  1. 16.2.8改变用户注册 shl1
  2. 在 Account Manager(账号管理程序)上,先选择好用户名,然后从 Users菜单中选择Modify选项。使用 Login She11按钮从有效的注册 sheII列表中选择你自己喜欢的 sheII。
  3. 若要改变系统默认的注册 shelI,请选择 Option菜单中的 User Defaults选项。
  4. 每个 Shell都有一个或多个专用于该 shell的环境文件(如, ksh(C)有·profile和.kshrc)。你只需选择 Add Shell Environment FiIes to Home Directory(把 shell环境文件添加到起始目录中)就可将环境文件加进起始目录中(新建用户时,shell的环境文件会自动地复制到起始目录中,无需再单击此按钮)。
  5. 参见:
  6. ● usermod(ADM)手册页(用于命令行界面)
  7. ● 增加注册 sheII和环境文件
  8. 16.2.9注册 shell
  9. 通常我们可以使用以下注册 Shel1:
  10.     Bourne shell (/ bin /sh)
  11.    是通常所指的标准 shelI,也是人们开发的第一个 sheII。它支持通配持和基本命令
  12.    语言,有一个限制版本 rsh。
  13. C shell  (/ bin /csh)
  14.     其语法规则与 Bourne shelI和 Korn shell系列不同,有点类似 C编程语言。它支
  15.     持命令历史回调(即重新使用近期发出的命令而不需重新键入)和别名机制(定义命
  16.     令的"绰号"),并对输入、输出重定向功能做了限制。
  17. Korn shelI(/bin/ksh)
  18.     是 Bourne sheII的超集,除了包括 Bourne shell的所有功能外,不仅支持命令历
  19.     史编辑(可以编辑先前发出的命令并再次发出)和别名机制,还支持任务控制(处理
  20.     后台进程),并扩充了语法规则。 Korn shell是我们推荐的 shell,它有一个限制
  21.     版本 rksh。
  22. SCO sheII(scosh)
  23.     带有菜单形式的 shelI(字符界面)
  24. uucp
  25.     只为使用 uucico(ADM)的 UUCP注册账号的用户开发的非交互式 shelI,不能供
  26.     普通用户账号使用。参见7.2.3节"为拨入站点创建注册账号"。
  27. 16.2.10 受限 she11
  28. Bourne shell和 Korn shell的限制版本(rsh和 rksh)禁止使用 cd命令来改变目录和设
  29. 置 $PATH的值,不能使用包括斜线的命令,禁止使用>和≥做输出转向。
  30. 16.2.11改变用户起始目录
  31. 在 Account Manager(账号管理程序)上,选择好用户名,然后从 Users菜单中选择Modify选项。使用 Change Home Directory(改变起始目录)按钮来显示起始目录选项(在建用户时,只有前三个才有效),下面对界面上的一些宇段作些介绍:
  32. Home Directory(起始目录)或 Home Directory Base Path(起始目录基本路径)
  33. 在此处输入起始目录名。当改变用户的默认值时,基本路径就是所有起始目录所在的
  34. 目录(如/usr).
  35. Home Directory Permissions(起始目录的许可权)
  36. 指允许同组用户或其它任意用户访问起始目录的权限限制。该选项只在创建新目录和
  37.     改变默认的用户目录的节点(父目录)时才有效。
  38. Greate Home Directory(创建起始目录)
  39. 增加新的起始目录。若你想使用现成的目录,请不要选择该项。
  40. Move Files from Old Home Directory(从旧目录中移动文件)
  41. 将所有该用户的文件移到新的起始目录下。
  42. 要改变系统默认的用户起始目录的节点,请从 Options的菜单中选择 User Defaults选项.


  43.   注意: 在改变系统默认的用户起始目录的节点时,只是改变新用户的起始目录节点而不会  
  44.   改变老用户的起始节点.

  45. 16.2.12 改变用户类型
  46. 系统提供的多种可选用户类型标签用于区别不同的用户类型。

  47. 注意: 被闲置账号其类型是"retired(闲置)", 因此, 若把一个账号的类型设为"retired(闲置)",该账号就会自动被闲置.但另一方面,用户类型更多的只是一种信息标签,它并不能表明特殊的权限.用户类型的属性不能从Account Manager(账号管理程序)中访问和更改.

  48. 要改变一个账号的类型,请使用如下命令
  49.     usermod -x  "{user Type type}"user
  50. 这里,user就是账号的名称,而type只能取下面这些值中的一个:
  51. root
  52. operator
  53. sso
  54. admin
  55. pseudo
  56. general
  57. retired

  58.     若要改变账号建立时的系统默认值,请键人:
  59.    usermod -D -x "{user Type type}"
  60. 在通常情况下,系统默认的普通用户类型标签是"general",你无需改动它。而匿名账号(像 sysinfo/和uncp等)其标签是"pseudo-user"。每个伪用户都有一个对其账号负责的用户,如 root,就是对所有的伪用户账号负责的用户。
  61. 16.2.13改变用户的优先级
  62. 优先级值的设置将决定调度表中用户进程的优先级,其值越大,优先级越高。
  63. 要改变一个账号的优先级,可使用如下命令:
  64.     usermod -x "{nice value}" username
  65. 使用传统调度表的进程其优先级在0(低)~127(高)之间,而使用实时调度表的进程其优先级在128~255之间。
  66. 若要改变在用户账号创建时系统默认的优先级值,其命令如下:
  67.     usermod -D -x "{nice value}"
  68. 参见:
  69. ●        nice(C)手册页
  70. 16.2.14  增加注册 shell和环境文件
  71. 你可以从 Account Manager(账号管理程序)向有效的注册 shell集中增加注册 sheII(和
  72. 配置文件)。例如,csh(C)的配置文件是.login和. cshrc,当一个用户选择 csh作为自己的注册 She11时,系统就会自动地将这两个文件安装到用户起始目录中。每个 shelI都在/usr/lib/mkuser下有一个目录来存放自己的配置文件。你可以检查现存的文件,并按照它们的形式来增加新的注册 sheII及其配置文件。只是要注意新加文件的许可权和属主应和原有文件的一致。这样,当你再使用 Account Manager(账号管理程序)时,新的注册 shell就有效了。
  73. 16.3管理用户组
  74. 创建用户组的主要目的是用于控制对某类文件和目录的访问权限。比如,当你只想让
  75. 一些特定的用户才能访问某些文件时,你可以创建一个工作组,通过组的权限来管理这些文件和可以访问这些文件的成员。与组相关的一些操作如下:
  76. ● 增加或修改用户组
  77. ● 删除用户组
  78. ● 改变用户注册组
  79. ● 改变用户组成员
  80. ● 在目录中设置文件创建时的用户组 ID号
  81. ● 改变用户组成员资格数的限制


  82. 警告:不要改变任何默认系统用户组的组GID号.

  83. 16.3.1用户组
  84. 用户组允许一类用户共享文件。一个文件或目录的组许可权决定了该组成员的访问权
  85. 限。你可以通过桌面系统或使用 chgrp(C)命令来改变一个文件或目录的组属性。
  86. 一个用户可以同时是几个用户组的成员,可以访问这些用户组的文件和目录(只要组许
  87. 可权允许)。在默认情况下,一个用户创建文件时,其用户组属性将是该用户注册组的 ID
  88. 号。用户可以使用 sg(C)命令来改变自己的当前工作组。

  89. 注意: 当在一个目录中创建文件时,文件的用户组属主是由GID位的设置决定的.参见"在目录中设置文件创建时的组GID号".

  90. 16.3.2 增加或修改组
  91.     在 Account Manager(账号管理程序)上,从Groups菜单中选择 Add New Group(增加
  92. 新组)选项。键入组名,然后就可以在组 ID号宇段决定是否改变系统提供的组 ID号。
  93.     若要修改一个已存在的组,可先从 View菜单选择 By Group选项,然后选择一个组名,再从 Groups菜单选择 Modify(修改)选项。
  94.     若要把一个用户增加到某一组中,在"Other Users(其他用户)"栏选择一项,然后单击
  95. Add按钮。
  96.     若要从某一组中删除一个用户,在"Users ln Group(组中的用户)"栏选择一项,然后单击 Remove按钮,也可以通过查询某一用户名来进行选择。
  97.     若要改变新组 GID号的可选择范围,可从 Options菜单中选择 Group Defaults。
  98.     若要从命令行创建组,可用如下命令:
  99.            groupadd groupname

  100.     这时,.新组的属性都将采用默认值,除非你用groupadd(ADM)的任选项来替代相应的值.


  101. 注意:你也可以通过编辑文件/ etc / group 来增加或修改组,但我们建议你最好使用Account Manager(账号管理程序)或groupadd命令来做这些工作.

  102. 16.3.3 删除用户组
  103.     在 Account Manager(账号管理程序)的界面上,先从 View菜单选择 By Groups选项,
  104. 然后,选择一个组名,再从 Groups菜单选择 Delete选项。
  105.     删除一个组后,并不会改变系统中属于该组文件的 GID号。系统管理员只能用手工方
  106. 式更改这些文件的组 GID号。有关信息参见1.2.5节"改变带有无效 UID/GID文件的属主"。
  107.     参见:
  108.     ● 增加或修改组
  109.     ● groupde1(ADM)手册页(用于命令行界面)
  110. 16.3.4 在目录中设置文件创建时的组 ID号
  111.     在默认情况下,新文件的 GID号是和创建该文件的进程或用户的 GID号一致的。但若你设置了一个目录的 SGID位,则该目录所属文件的组 GID号都将与该目录保持一致。这就使得人们能更方便地共享文件,因为它能保证在同一目录下的文件具有相同的组 ID号,而不管这些用户的注船组是否一致。
  112.     要在一个目录中设置 SGID位,可使用如下命令:
  113.         Chmod g十s directory
  114.    
  115.     若要删除该位,则只需将上条命令中的"十"替换为"一"即可。
  116. 16.3.5 改变用户组成员资格数的限制
  117.     在默认情况下,一个用户同时最多只能是8个组的成员,这个数是由可调整的核心参数NGROUPS决定的。要改变这个值可使用 Hardware/KerneI Manager(硬件/核心管理程序)或 configure(ADM)命令。选择第7项"User and group configuration(用户和用户组配
  118. 置)",然后改变 NGROUPS的值。当然,新值只有核心重新链接并重新引导后才能起作用。
  119. 详细信息请参见《SCO OpenServer系统手册》(本系列丛书之一)中"重新链接核心"一节。
复制代码

论坛徽章:
0
46 [报告]
发表于 2006-01-10 10:54 |只看该作者

第16章 管理用户账号


  1. 16.4管理口令
  2.     口令是防止非法用户入侵的第一道屏障,给所有用户设置口令可以保护系统。与口令有关的管理任务如下:
  3.     ● 设置或改变用户的口令
  4.     ● 控制口令的过期
  5.     ● 控制口令的选择--包括口令的使用和生成以及它的长度和"明显性"
  6.     ● 设置拨号口令
  7. 16.4.1设置或改变用户的口令
  8.     在 Account Manager(账号管理程序)上,先选择好用户名,然后从 Users菜单中选择
  9. Change Password(改变口令)选项。这时,就会出现如下选项:
  10. Enter a new Password(键入新口令):允许你创建一个新口令。
  11. Keep existing password(保持现有口令):维持当前的口令(这个选项在账号创建的过程中
  12.     无效)。
  13. Use machine generated password(使用机器生成的口令):允许系统为用户生成一个口令。
  14. Remove password(删除口令):删除口令并允许用户注册时不用口令。
  15. Force password change at next login(强迫下次注册时改变口令):强迫用户在下次注册时
  16.     改变他们的口令。
  17.     若你想键人一个新口令,请先在"Enter Password,,宇段输入口令(口令将不会显示出来),然后再在Confirm Password(核实口令)"宇段再次输入口令。
  18.     单击 Generate a password(生成口令)按钮,系统将为用户生成一个口令。由此生成的口
  19. 令是毫无意义但可拼读的词,而不仅仅是随机字符串(如:juhahiwa)。口令将自动地出现在
  20. 口令宇段,单击 OK按钮表示接受该口令,否则就再单击 Generate...按钮,直到生成你满意的口令为止。
  21.     用户也可以生成自己的口令,除非系统管理员禁止他们使用口令生成程序。有关细节请参见"允许用户生成口令"。
  22.     参见:
  23.     ●l"不同安全级别的口令检查"
  24.     ● passwd(C)手册页(用于命令行界面)
  25. 16.4.2控制口令过期
  26.     在 Account Manager(账号管理程序)上选择好用户名,然后先从 Users菜单中选择
  27. Password Restrictions(口令限制选项),再选择 Expiration(过期)。
  28.     下面的宇段将允许你改变系统管理口令的一些默认值(你可以选择单选的默认键来防
  29. 止改变系统的默认值),分述如下:
  30. Days a11owed between changes(允许改变口令的天数)
  31.     设置用户可以再次改变口令必须等待的天数。这样可以防止用户在一个口令刚过期后
  32.     就立即通过多次更改口令回到原来的口令中去。
  33. Days until password expires(口令过期的天数)
  34.     设置口令有效的天数。当口令过期后,用户再注册时,系统就会自动提示其改变口令。
  35. Days untiI account is locked(账号将被锁住的天数)
  36.     设置口令过期后到账号自动被锁住(可以防止用户注册)的时间间隔天数。
  37.     若要认命令行改变系统的默认值,可使用如下命令:

  38. usermod  -D  -x "{passwdMinChangeTime value}"
  39. usermod  -D  -x "{passwdExpirationTime value}
  40. usermod  -D  -x"{passwdLifeTime value}"
  41.     你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
  42. -D选项并在末尾加上用户名即可。

  43. 注意:低级和传统的安全级别中对口令的限制非常宽松:口令不会过期,账号不会被锁住,也没有改变口令的最短时间间隔的要求.


  44. 默认的账号初始化文件(如:.cshrc,.profile,.kshrc等)会自动地执行 prwarn(C)公用
  45. 程序,在注册时警告用户就要临近的口令过期期限。
  46. 参见:
  47. ● 锁住或解锁用户账号
  48. ● usermod(ADM)手册页(用于命令行界面)
  49. 16.4.3 控制口令选择
  50. 口令选择约束给了系统管理员这些能力
  51. ● 允许账号不用口令
  52. ● 禁止用户改变口令
  53. ● 限制口令
  54. ● 允许用户生成口令
  55. ● 设置口令长度
  56. 16.4.3.1允许账号不用口令
  57. 在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选
  58. 择 Password Restrictions(口令限制)选项,再选择 Selection(选择)。
  59. 要允许用户注册时不用口令,可将 Password Required设为 No(若要使用系统默认值,可将其设为 Default)。不过,请注意设置账号无口令会给安全带来很大的危险。
  60. 要改变系统默认值,请使用命令:
  61.       usermod -D -x "{passwd NullAllowed value}"
  62. 其中,value只能取值 l(无口令要求)或0(有口令要求)。
  63. 你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
  64. -D选项并在末尾加上用户名即可。


  65. 警告: 删除口令要求并没有删除现有的口令.系统管理员必须给每个用户改变口令并将其设为空(见"设置或改变用户口令"或使用passwd (C)命令行).

  66. 16.4.3.2 禁止用户改变口令
  67. 在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选
  68. 择 Password Restrictions(口令限制)选项,再选择 Selection。
  69. 将 User can choose own(用户可以自己选择)设为 No(若要使用系统默认值,将其设为
  70. Default)。这样,口令过期后,用户只能从系统管理员处或口令生成程序中获得口令。
  71. 要改变系统默认值,请使用命令:
  72. usermod -D -x "{passwd Choose Own value}"
  73. 其中,value只能取值 l(用户可以改变口令)或0(口令只能由系统管理员或口令生成程序
  74. 提供),
  75. 你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
  76. -D选项并在末尾加上用户名即可。
  77. 16.4.3.3允许用户生成口令
  78. 在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选
  79. 择 Password Restrictions(口令限制)选项,再选择 Selection(选择)。
  80. 你可以选择由系统为用户生成口令,这样能防止用户采用"明显"口令(如采用用户个人的一些特征资料当口令),很容易就被有经验的入侵者猜出来。
  81. 若要允许用户生成(但不是自己选择制定)新口令,将 User can run generator(用户可以运行口令生成程序)置为 Yes。若要使用系统默认值,则可将其置为 Default。
  82. 要改变系统默认值,请使用命令:
  83.     usermod -D -x "{passwd Run Generator value}"
  84. 其中value的值只能是 l(用户可以运行口令生成程序)或0(用户不能运行口令生成程序)。
  85. 你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉--D选项并在末尾加用户名即可。
  86. 16.4.3.4限制明显的口令
  87. 口令控制的一个重要方面就是要保证口令很难被猜出面又不太复杂难记。你可以防止
  88. 用户使用太容易被猜出来的口令,如字典中的词或系统名称等太"明显"的口令。
  89. 在 Account Manager(账号管理程序)的界面上选择好用户名,然后先从 Users菜单中
  90. 选择 Password Restrictions(口令限制)选项,再选择 Selection。
  91. 把 Check for Obviousness(检查口令的"明显性")置为 Yes,将对口令进行复杂的检查。
  92. 若要使用系统的默认值,则可将其置为 Default。这里,Yes和 No的含义将随系统安全级别的不同而有变化。若想将其含义设为与系统安全级别无关,请参见1.4.3.5"自定义口令检查"一节。
  93.     要改变系统默认值,请使用命令:
  94. usermod -D -x "{passwd Checkd For Obviousness value}"
  95. 其中,value只能取值 l(使用复杂口令检查)或0(使用限制较少的口令检查)。
  96. 也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉-D
  97. 选项并在末尾加上用户名即可。
  98.     表1-I不同安全级别的 口令检查
  99. 安全级别默认值        检查口令的"明显性"
  100.         No        Yes
  101. Low        -        -
  102. Traditional        System V        System V -plus
  103. Improved / High        Goodpw 弱        Goodpw强

  104. System V/(传统的 UNIX系统 V口令检查)检查口令中是否为:
  105.    ● 不是注册名的循环移位(如将第一个字符移到末尾,将第二个宇符移到第一个, 反
  106.   之亦然)。
  107.    ● 至少包含两个字母字符和一个非字母字符。
  108.    ● 至少有三个字符与旧口令不同。
  109.    ● 口令长度至少不短于在文件/etc/default/passwd过中定义的 FASSLENGTH值。
  110. 若没有定义 PASSLENGTH或将其设为"*",则根据用户的注册尝试次数和口令的生
  111. 存期进行一个特殊的长度检查。
  112. System V-plus(System V增强版)还将检查口令是否为:
  113.    ● 不是回文
  114.    ● 不是组名或用户名
  115. goodpw弱将检查口令是否为:
  116.    ● 不包括"SCO","XENIX"或"UNIX"等字符串(定义在文件/usr/lib/goodpw/ reject   
  117.       中).
  118.    ● 不包括用户名、用户组名、机器名以及命令的别名
  119.    ● 根据字符的组成进行特殊的长度检查(定义在/usr/lib/goodpw/match人中,并
  120.      替代了系统的最短长度设置):
  121.      一如果口令都是由字母字符组成,并且大小写一致,则其长度不能少于6个字符
  122.      一如果口令既有字母字符又有数字字符,则其长度不能少于5个字符
  123.      一如果口令由非字母和数字字符(即符号字符)组成,或者是大、小写字母字符与数
  124.       字混合组成,则其长度不能少于4个字符
  125.     goodpw强(在goodpw弱的基础上再加额外检查)还将检查口令是否为:
  126.    ● 不包含字典中的词
  127.    ● 不是用户名、组名、机器名、命令的别名或者字典词的循环移位
  128.       goodpw(ADM)的口令检查定义在/usr/lib/goodpw目录中,并可通过该目录下的文件对口令检查进行补充修改。有关细节请参见1.4.3.5"自定义口令检查"一节。

  129. 注意:"明显性"检查可以防止基于字典猜测的入侵,但对那些不断重复的入侵尝试可以由注册限制更好地控制住-------参见义勇为.5.2节"设置终端的注册限制"."明显性"检查减少了对改变口令的时间要求.


  130. 有关细节,可参见 usermod(ADM)手册页(用于命令行界面)。

  131. 16.4.3.5自定义口令检查
  132. 你也可以使用goodpw(ADM)公用程序自定义口令检查。文件/etc/default/goodpw包含了口令控制设置,这些设置决定了是否进行防止字典词、词循环移位、用户名、组名以及系统名等的检查。

  133. 注意:口令检查也可以通过编辑/ etc / default / passwd和改变GOODPW的值来设置,其中GOODPW的值含义如下:
  134.      YES    使用goodpw
  135.      NO     使用标准的UNIX系统口令检查
  136.      NONE  不执行口令检查


  137.    你也可以在文件/usr/tlb/goodpw/ match(或/usr/lib/goodpw / reject)中定义则表达式(字符组合和范围)来规定口令必须匹配(或不匹配)该表达式。有关细节请参见 Boodpw
  138. (ADM)。
  139. 16.4.3.6设置口令长度
  140.     口令长度由三个参数控制:
  141.     ● 最短长度
  142.     ● 最长生成长度--对口令生成程序的口令限制
  143.     ● 特征段数--参见"不同 UNIX"系统间的口令兼容性
  144.     非口令生成程序生成的口令,其最长长度为80个字符。
  145.     你可以随时改变文件/etc/default/passwd 中 PASSLENGTH的值来重新配置口令的最短长度。你若从该文件中删除了 PASSLENGTH或将其值设为"."(PASSLENGTH= *),
  146. 则 PASSLENGTH将由系统计算而得。有关细节请参见"限制口令"的"明显性"一节。
  147.    你也可以通过 Account Manager(账号管理程序)配置单个用户的口令生成长度。在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选择 PasswordRestrictions(口令限制)选项,再选择 Selection(选择)。
  148.    要改变系统中口令生成长度的默认值,请使用命令:
  149.       usermod -D -x "{passwd Generated Lenth value}"
  150. 其中,value的最大值为80。
  151.     你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉-D选项并在末尾加上用户名即可。
  152.     参见:
  153.     ● 允许用户生成口令
  154. 16.4.4设置拨号口令
  155.     你可以为选定的 tty行定义专用的拨号口令,并可要求相应类的用户在拨号注册时键入口令。有关的注册信息(包括上一次注册时间)的存储方法同普通注册的一样。
  156. 需要口令的特殊在线拨号行定义在文件/etc/dialups中。其格式是每行包括一个 tty 设备,如
  157.   / dev / tty1 A
  158.   / dev / tty5 C
  159. 真正的拨号口令存储在文件/etc/d_passwd 中,口令的格式与文件/etc/passwd一致。但在/etc/d_passwd中的第一个宇段("用户名"宇段)并不是真正的用户名,而是文件/etc/passwd中的 shell程序名,如/lib/sh。如果用户试图注册的 tty行(该行列etc/dialups中)的注册 sheII列在文体/etc/d_passwd中,那么需要拨号口令的用户也存储在/etc/passwd 中。
  160. 可使用以下命令行来创建拨号线路口令:
  161.         passwd -m dialname

  162. 也可用这条命令来改变拨号 SheII  dialname(列在/etc/d_passwd中)的口令。如果 dialname是以"/开头,则整个 shel1名字都必须匹配。若不是以"/"开头,则所有名为 dialname的 shelI的口令都将改变。当然,这里也只有超级用户才有这个权限。
复制代码

论坛徽章:
0
47 [报告]
发表于 2006-01-10 10:56 |只看该作者

第16章 管理用户账号


  1. 16.5设置注册限制
  2. 注册限制可以使用锁住的方法防止非法用户的入侵。以下这些注册限制使非法用户很难通过多次重复的注册来猜测用户的口令并进入系统:
  3. ● 设置账号的注册限制
  4. ● 设置终端的注册限制
  5. ● 锁佐或解锁用户账号
  6. ● 锁佐或解锁终端
  7. 16.5.1设置账号的注册限制
  8. 你可以限制一个账号的连续多次的注册失败次数,一旦这个次数达到了,该账号就会自动地被锁住,以此来防止非法的入侵。
  9. 在 Account Manager(账号管理程序)的界面中选好一个用户名,然后从 Users菜单中
  10. 选择 Login Controls(注册控制)。
  11. 在"Failed login attempts allowed before account is locked(账号锁佐以前允许注册失败的次数)"宇段输入一个值,然后单击 default of(设为默认值)按钮将其设为默认值。
  12. 要锁住或解锁一个账号,请参见"销往或解锁用户账号"。
  13. 要改变系统的默认值,请使用如下命令:
  14.         usermod -D -x "{maxloginAttempts value}"

  15. 你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
  16. -D选项并在末尾加上用户名即可。

  17. 注意:终端限制的控制级别超过注册限制.


  18.   参见:
  19.   ● usermod(ADM)手册页(命令行界面)
  20.   ● 设置终端的注册限制
  21. 16.5.2设置终端的注册限制
  22.     你可以设置一个终端的注册限制来防止非法的入侵。通常情况下,连续多次的注册尝试基本上是在猜口令。
  23.     Terminal Manager(终端管理程序)位于 SCOadmin层次结构的System  目录下。要设
  24. 置所有终端的注册限制,请在 TerminaI Manager(终端管理程序)界面中选择 Defaults。若只想限制个别终端,则请选择 Examine(检查)。
  25.     你可以通过终端管理程序来控制以下属性:
  26.     Consecutive unsuccessfu1 logins(连续注册失败次数)
  27.     设置终端自动锁住以前可以连续注册失败的次数。输入"INFINITE"或"infinite
  28.     将禁止此类型的终端限制。
  29. Delay between attempts(两次注册尝试间的延迟时间)
  30.     设置两次注册尝试的间隔时间。这时,在再次注册尝试前将显示 Wait for login    retry:的消息。
  31.     Time to complete login(完成注册尝试的时间)
  32.     设置每次注册的最大时间间隔。如果在此时间内没有完成注册,系统自动认为注册
  33.     失败并再次启动注册进程(但如果已达到最大的注册次数,系统将锁住该终端)。
  34.     在五次注册尝试失败后,注册会话将终止,并在经过"两次注册尝试间的延迟时间"之后才开始新的注册会话,这五次注册的限制是不能改变的。当注册是通过调制解调器连接的那么连续五次注册失败后将断开调制解调器的连接。

  35. 注意:在超级用户注册时,系统主控台的锁住将是无效的,这能防止一个系统上所有的用户都被锁住的情况发生.由于系统上只有这样一个特殊注册,所以一定要维护好主控台.


  36. 参见:
  37. ● 日志不成功注册尝试
  38. 16.5.3 锁住或解锁用户账号
  39.     在 Account Manager(账号管理程序)中选好一个用户名,然后从 Users菜单中选择 Login Controls (注册限制)选项。
  40.     要锁住该账号,则单击 Lock Account(锁住账号)按钮。如果该账号早已被锁住,则显示为 Unlock Account(解锁账号)按钮,只需单击它,就能给账号解锁。
  41.     如果一个账号已被锁住,它将出现在"Current Account Lock Status(当前账号锁住状
  42. 态)"栏的列表里。一个账号遇到以下的情况将被锁住:
  43.     ● 系统管理员锁住账号
  44.     ● 连续失败的注册尝试次数达到了注册限制次数
  45.     ● 账号口令过期
  46.     你也可以通过以下命令行来解锁账号:
  47.        passwd -u username
  48.     要锁住账号,则只需用-I替换"-u"即可。
  49.     参见:
  50.     ● 控制口令过期
  51.     ● 设置终端的注册限制
  52. 16.5.4 锁住或解锁终端
  53.     这里的终端是指与用户注册相关的设备文件,如/dev/tty01及/dev/ttyp00等。
  54.     若使用 Terminal Manager(终端管理程序)(位于 SCOadmin层次结构的System目录下)来锁住或解镀一个终端,只需在其界面中相应地选择 Lock或 Unlock既可。当系统提示
  55. 你输入终端名时,请输入相应的终端名(如 tty01)。在一个终端被锁住后,再在该终端尝试注册时,将出现如下信息:

  56.     Terminal is disabled-see Authentication Administrator
  57. 16.6 分配用户极限
  58.     系统管理员可以有选择地授予(或限制)用户的某些特殊权限:
  59.     ● 分配子系统的权限--使用户具备运行系统管理程序的能力
  60.     ● 改变系统特权--给用户进程授予特权
  61.     ● 允许用户跳过注册消息
  62.     ● 允许用户执行超级用户命令--使普通用户能运行只有超级用户才能执行的命令
  63.     ● 使用 su(C)访问其它账号
  64.     ● 控制工作调度表命令的使用--用 cron(C),at(C)和 batch(C)来调度工作
  65.     在低级或传统的安全特征级别里,普通用户在通常情况下基本具备以上所列的权限。而在高级(C2)安全特征级别里,普通用户很少具备这些权限,通常由系统管理员授权给他所信任的用户。
  66. 16.6.1 分配子系统的权限
  67.     这里的权限主要是指允许用户运行某些系统程序。 UNIX系统将超级用户权力分成多
  68. 个子系统,访问这些子系统的权限我们称之为基本权限。而为了能更好地管理子系统权限,
  69. 我们又对这些子系统进行了分类,访问这些类的权限就称之为辅助权限,这样辅助权限的权力就更受限制了。其中,基本权限一般只能授予系统管理员所信任的用户。
  70.     在 Account Manager(账号管理程序)的界面上选好用户名,然后从 Users菜单中选择
  71. Authorizations(权限)选项。
  72.     To change authorizations(要改变权限),先撤消对  Use system default authorizations
  73. for this user account(对该用户使用系统默认的权限)按钮的选择,然后即可对该用户分配
  74. 特殊的权限组合。
  75.     To add an authorization(要增加一种权限),在"Not authorized(没有授权的权限)"栏
  76. 里选择一项,然后单击 Add按钮。
  77.     To remove an authorization(要删除一种权限),在"Authorized(己授权的权限)"栏里选
  78. 择一项,然后单击 Remove按钮。
  79.     要改变权限分配的系统默认值,使用如下命令:
  80. usermod -D -x "{subsystem Auths {list}}"
  81. 其中 list是一列由空格分隔开的权限值。
  82.     你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
  83. -D选项并在末尾加上用户名即可。
  84. 16.6.1.1基本权限
  85.     基本权限有效地将超级用户权力分成多个子系统,允许你给指定的用户分配特定的权
  86. 使用辅助权限可以给普通用户分配更受限制的权力。
  87.     如果用户缺乏运行某个 SCOadmin管理程序的权限,系统将会显示如下信息:

  88. YOU are not authorized to run…

  89. 基本权限列表
  90. 权  限        SCO admin管理程序        权   力
  91. Mem        ─        可访问系统数据表,并能列出所有系统中的进程
  92. Terminal        ─        Write(C)命令的使用将不受限制
  93. Lp        Printer Manager        管理打印机
  94. Backup        Backup Manager        执行备份
  95. Auth        Account Manager
  96. Terminal Manager        管理账号和终端
  97. 增加用户,改变口令,控制注册
  98. Audit        Audit Manager        执行系统审计并产生报告
  99. Cron        Cron Manager        控制cron(C),at (C)和batch(C)命令的使用
  100. Root        ─        可使用任何在目录/tcb/files/rootcmds下的命令─参见"允许用户执行超级用户的命令"一节
  101. Sysadmin        Filesystem Manager        可以改变文件系统安装配置
  102. Passwd        Account Manager        可以改变用户口令
  103.        
  104. 16.6.4允许普通用户执行超级用户命令
  105.     你可以让普通用户执行某些只有root才能执行的命令而无需给该用户完全的root权限。root可以使用 asroot(ADM)公用程序来创建相应命令的新的授权,然后你就可将这些
  106. 权限授予相应的用户。你也可以把 root子系统的权限授予用户,可使其能运行所有由 as-root配置的命令。例如,若已把 shutdown的权限授予用户,则该用户就可按如下格式运行shutdown命令:
  107.            / tcb / bin / asroot shutdown
  108. 有关配置超级用户命令的过程细节,请参见 asroot(ADM)手册页。

  109. 注意:若系统设置为高级安全级别,那么,执行asroot公用程序时,将要求输入用户的口令.


  110.   参见:
  111.   ● 分配子系统权限
  112.   ● 使用 su(C)访问其它账号
  113. 16.6.5 使用 su(C)访问其它账号
  114.     su(C)公用程序可以让用户暂时地切换到其他账号。当su命令不带参数执行时,将切换到root账号,而若想切换到其它账号,则应按如下格式:
  115.          su username
  116.     su会提示你输入相应账号的口令,若正确,就会在该账号下启动 Bourne shell。使用su
  117. 切换不会影响到注册用户 ID(LUID),因此注册和审计记录会保留原值。
  118.     若上条命令中使用了(-),即 su-",则会建立该用户的环境(包括注册 sheII,起始臣
  119. 等),就好象用户是直接以该账号注册似的。要退回到你原先的账号,只需建入 exit或按·
  120. Ctrl>D键。
  121.     用户在使用 su以前必须拥有 su权限。用户可以使用 su切换到伪用户或root账号或其它不需要他负责的账号。有关细节,请参见"分配子系统权限"一节。

  122. 注意:在低级,传统和增强安全级别里,su权限都默认地分配给所有的账号.用户只要知道口令就可su到任何一个账号.而在高级安全级别里,su权限不是系统默认值.


  123. 参见:
  124. ● Su(C)的用法
  125. ● 分配子系统权限
  126. ● 允许用户执行超级用户的命令
  127. 16.6.5.1记录 su(C)的用法
  128.   若 SULOG登记项:

  129.     SULOG=/usr/adm/sulog

  130.    出现在文件/etc/default/su里,su(C)命令的使用情况将记录在文件/usr/adm/sulog里,其格式如下:
  131. SU  07/08  22:32十  ttyp0 mavrac-root
  132. 在登记项里注明了日期,时间,地点和使用su命令的程序.
  133. 参见
  134. ●        检查和清理系统日志文件
复制代码

论坛徽章:
0
48 [报告]
发表于 2006-01-10 10:57 |只看该作者

第16章 管理用户账号


  1. 16.7复制用户账号
  2. 可使用 ap(ADM)公用程序从别的SCO系统复制用户账号.ap可以创建一个包含一个或
  3. 多个用户所有账号数据的特征文件.但若你已配置了NIS,就无需再用ap.


  4. 警告:ap公用程序所创建的特征文件不能移植到非SCO UNIX系统.如果你需要从其它厂家的UNIX系统或SCO XENIX系统中移植账号,请使用ad-dxusers(ADM)公用程序(参见"从SCO UNIX系统复制用户账号"一节)


  5. 账号信息是从/etc/passwd文件和Protected Password数据库中收集的, 而一些不
  6. 重要的信息(如失败的注册消息,失败的改变口令消息,上一次注册的时间和地点等)将被忽略.
  7. 要创建账号特征文件并将其安装到另一个系统上,请执行如下步骤:
  8. (l)在账号所在的机器上,以root注册,然后键入如下命令:
  9.     ap-d-V username >profile.acct
  10.     其中usernames是一个或多个账号的名字
  11. (2)在目标机器上,以root注册,并将文件Profile,acct复制到该系统上(如使用tar
  12. 命令).
  13. (3)然后键入如下命令:
  14.     ap -r -f profile ,acct usernames
  15. 这样,账号的复制就完成了,新账号准备就绪.
  16. 参见:
  17. ●        本系列丛书之四《SCO OpenServer网络指南》中"管理NIS用户和组"
  18. ●        复制用户账号到非SCO UNIX系统
  19. ●        从SCO XENIX 或非SCO UNIX 系统复制用户账号
  20. 16.7.1把用户账号复制到非SCO UNIX系统
  21. 你可以通过复制etc/passwd文件和/etc /shadow文件(若合适)将用户账号移植到其它厂家的 XENIX或 UNIX系统上。如果目标系统不使用/etc/shadow文件,那就在本地机上先运行 pwunconv公用程序将账号信息集中在/etc/passwd上,再将其复制到目标系统上。
  22. 16.7.2从 SCO XENIX或非 SCO UNIX系统复制用户帐号
  23.     你可以使用 addxusers(ADM)公用程序从 SCO XENIX(或非 SCO UNIX)系统复制用户账号。 addxusers可接受已编辑的etc/passwd文件作为其输入,并会对数据库做一些必
  24. 要的修改以符合你的系统。详细的操作步骤可参见 addxusers(ADM)手册页。
  25. 16.7.2.1不同 UNIX系统的口令兼容性
  26.     SCO系统的口令编码方案保持了与其它 XENIX和 UNIX系统的兼容,同时也提供了口
  27. 令超过8个有效字符的能力。尽管在增强或高级安全级别里,口令长度最长可达80个字符,但太长口令不可能移植到其他厂家的 UNIX系统上。为确保兼容性,你可以限制口令的长度。
  28.     要重新配置口令有效成分的数目,请使用命令:
  29.         usermod -D -x "{passwdSignificantSegments value}"
  30. 其中value的取值范围是 l-10。取值 l(而不是增强或高级安全级别里默认的10)将允许加密机制忽略掉前8个字符以后的字符,这样可确保与其他系统的完全兼容。


  31. 警告:绝大多数XENIX和UNIX系统都能接受超过8个字符的口令,但通常只将前8个字符加密.若从这样的系统里移植一个加密口令字符串到SCO系统里,将会产生不可预期的结果.若一个口令长度超过8个字符,如"narcissus",移植到SCO系统后将只能认前8个字符"narcissu".

  32. 16.8 账号管理的故障诊断
  33.     Account Manager(账号管理程序)显示的出错信息大都是自解释的,其它的就是普通的真正的出错信息,如:
  34.    Unable to create new  user account:name
  35.    在这种类型的出错框里还有一个 Details(细节)按钮可提供更详细的附加信息。问题的
  36. 报告大致分为如下三类:
  37.     ● 用户或组属性的非法设定
  38.     ● 远程管理的问题
  39.     ● 丢失或损坏数据库文件
  40. 16.8.1用户或组属性的非法设定
  41.     当创建或修改用户和组时,下列情况会引起错误:
  42.     ● 在属性栏(包括用户名、起始目录和注释)里含冒号(:)或换行符
  43.     ● 注册 shelI(或路径名)拼写错或不存在
  44.     ● 非法的用户或组名(名字以数字字符开头或超过8个字符)
  45.     ● 非法的 UID或 GID号(ID号只能在其最大值和最小值之间,在 Account Manager
  46.        的 Option菜单下选择 user或 Group会列出其取值范围)。
  47. 16.8.2远程管理的问题
  48.     若你是在远程进行系统管理,你也许不能达到远程系统或有其它配置问题(包括缺少用
  49. 户对等性)。有关细节可参见本系列丛书之四《SCO OpenServer网络指南》中的"解决 TCP/IP的问题"或"用 SCOadmin管理程序管理其它系统"这两节。
  50. 16.8.3 丢失或损坏数据库文件
  51.     在出错的框里单击"Details"按钮可能会指明文件数据(或文件本身)丢失情况,如:
  52.       The user name does not exist in /etc /passwd
  53. 这就表明/etc/passwd中的账号数据库项损毁或该文件本身丢失。表 l-7列出了 AccountManager(账号管理程序)会访问的关键文件。按如下方法可解决这类问题:
  54.     (l)使用 tcbck(ADM)命令来确定是否有文件丢失:
  55.         tcbck
  56.     这会列出所有丢失的数据库文件。
  57. (2)若没有文件丢失,或只有文件/tcb/files/auth/r/ root丢失,则使用
  58.    authck(ADM)命令检查安全数据库并解决不一致性问题:
  59.            authck -a -y
  60.      authck 会给toor和其他任何用户重新产生 Protected Password数据库登记项。
  61.     (3)使用 more(C)查看在步骤 l中报告的已丢失的文件。若该命令报告某个文件没有
  62. 发现或显示出空白,请按本系列丛书之一《SCO OpenServer系统手册》中的"恢复关键的安全性数据库文件"一节的步骤解决该问题。若没有问题了,请再使用 Account Manager(账号管理程序)。
  63. 表 l-7与安全相关的文件
  64. 文 件 名        作用
  65. Etc/auth/system/default        默认的控制数据库
  66. /etc/auth/system/authorize        权限数据库
  67. /etc/default/accounts        账号/组创建时的默认值
  68. /etc/group        组数据库
  69. /etc/passwd        账号数据库
  70. /tcb/files/auth        保护口令数据库目录
复制代码

论坛徽章:
0
49 [报告]
发表于 2006-01-10 11:00 |只看该作者

第17章TCP/IP协议


  1. 17.5 登录远地主机
  2. 1.rlogin远地UNIX主机
  3. 命令:
  4. # rlogin remote-host-name
  5. 2.telnet可以注册到任意支持TCP/IP协议的系统
  6. 提供命令方式的会话控制和方式
  7. 命令:
  8.         # telnet hostname或 # telnet  ip-Address
  9.         命令帮助: help
  10.         退出: quit
  11. 注: ftp访问权限由/etc/ftpusers控制
  12. 远程主机名字的提示:确定自己在网络中的位置,防止误操作
  13. Bourne sh (default sh) 的示例:
  14. PS1=" 'uname -n' $
  15. C sh的示例:
  16. set prompt= " 'uname -n' %


  17. 17.6 主机等价性
  18. 允许用户从一个系统登录到另一系统时,则目的系统不再要求他提供口令注册.这表明对于在原来系统上使用相同名字的用户来说,他在目的系统上是等价的。
  19. 这样可以节省时间,但产生了一些安全性风险。
  20. 编辑 /etc/hosts.equiv文件,它定义了一列特殊的主机。
  21. hosts.equiv文件格式:
  22. remote-host-name   (远程主机名)
  23. remote-host-name user-name
  24. 如:一台叫olm的主机的/etc/hosts.equiv文件
  25. system
  26.     ….
  27. 文件hosts.equiv告诉操作系统,如果已登录到机器system的用户alext试图远程登   
  28. 录到该系统,则olm系统就让他进来而不询问口令。  
  29. 只有超级用户才有权配置主机等价
  30. 17.7 用户等价
  31. 用户等价允许用户不必输入口令,以相同帐户信息重新登录到另一台计算机上。当用户必须经常登录到另一台计算机时,这是非常有用的,它避免了登录过程速度减慢,降低运行在远程计算机上的进程数量。
  32. 为许可用户等价,UNIX需要用户位于两台计算机上,并两个配置文件的输入项要匹配。控制对计算机全部访问权的/etc/passwd文件,必须在两台计算机上拥有同一个用户登录名字输入项。
  33. .rhosts文件,在每个用户的主目录下,每行都有一个输入项,指定远程计算机的名字和用户ID.
  34. .rhosts文件格式:
  35. remote-host-name
  36. remote-host-name user-name
  37. 17.8 远地主机文件复制
  38. 命令: ftp和rcp
  39. ftp比rcp快
  40. ftp的使用
  41. 向或从远地主机复制文件
  42. 可连接任意支持TCP/P协议的系统
  43. 可复制目录中一个或所有文件但不能复制多层次目录
  44. 必须在远地主机设有帐户.
  45.    格式 # ftp remote-host-name或 # ftp remote-host-IP-Address
  46.    例: # ftp cdx  或 # ftp  192.0.0.13
  47. rcp的使用
  48. 可复制目录中或多层次目录中的文件或 所有文件
  49.     命令格式:
  50.     # rcp  [-r]  [-p]  file1  [file2]  target
  51.       file1可具有以下形式:  user@host:path
  52.       host:path
  53.       path 选项: -r  递归地复制层次目录
  54.                  -p  保存所复制文件的修改时间和方式
  55. 例: rcp -r -p cdx:/etc/motd  /tmp/motd

  56. 17.9 路由器 (Router)
  57. 要建立一个路由器,需要在系统中增加额外的网络接口,并配置相应的软件。
  58. 1.        配置增加第二块网卡,将系统配置为一个网关(gateway)
  59. # netconfig  ->TCP/IP -> Advanced Options
  60. 2.        修改核心参数
  61. 设ipforwarding  为1
  62. 3.        当routed守护进程启动时,读取/etc/gateways文件,并把其中定义的路由安装到路由表中,然后它对每个本地网络进行广播,以发现运行routed的其他主机
  63.    routed使用/etc/gateways文件来初始化到远端网络的静态路由
  64. 格式: net|host name1 gateways name2 metric val active |passive|external
  65. 其中: net/host  表明该路由是到一个网络还是一台主机
  66.        name1     目标网络或主机的符号名(在/etc/networks或/etc/hosts中                          
  67.                  定义)或IP地址
  68.        name2     包被前传的网关的名字或地址
  69.        val       到达目标主机或网络所经过的网关的数目
  70.        active    表示希望与该网关交换路由信息
  71.        passive   表示不希望与该网关交换路由信息
  72.        external  表示该网关在路由协议范围以外      
  73.    route命令的选项:
  74.       add        增加一个路由   
  75.       change     改变一个路由的方向
  76.       delete     删除一个特定的路由     
  77.       flash      从路由表中删除所有项   
  78.       get        显示到特定目的地址的路由信息      
  79.       monitor    不停地报告路由信息的改变                           
  80. 有关命令和文件
  81. 命令              功能
  82. rcmd              远地外壳命令执行
  83. rcp               远地文件复制
  84. rlogin            远地注册

  85. 文件               描述
  86. $HOME/.rhost       全部或部分受托机器用户清单
  87. /etc/ hosts.equiv  受托主机清单
复制代码

论坛徽章:
0
50 [报告]
发表于 2006-01-10 11:03 |只看该作者

第18章 域名系统及设置


  1. 第18章 域名系统及设置
  2. 传统上, 将域名转换成IP地址的方式主要靠查表达式, 主机的管理者需将IP地址对应的域名列在主机信息表(host table)内, 此表通常是个普通的文件, TCP/IP的应用程序会根据该表进行域名的转换, 这种方式已随着网络的扩张而显得越来越没有效率, 往往一个主机信息表内即有数以百计的主机, 例如:在Internet的网络信息中心(InterNIC)即维护一份巨大的主机信息表, 列在其中主机称为已注册主机(Registered Host)。此外, 这种方式也没有一个有效率的机制将新注册主机的信息传播到其它系统。
  3. 目前的作法是采用以分散式数据库为结构的域名系统(DNS), DNS不依赖特定的主机信息表, 所有域名信息是采用阶层性方式散布在许多域名系统(Domain Name Server)内, 其它主机可向这些域名系统查询域名对应的IP地址与相关信息。
  4. 18.1 IP地址表与NIS
  5. 在结构相对简单,入网设备数较少的局部网内,各台设备的IP地址及相应的设备名被登录在主机管理文件(或称之为IP地址表)/etc/hosts中。 对于每台设备来说, 要利用设备名与其他设备交换文件信息时, 就必须将对方的设备名及其IP地址登录 在自己的主机管理文件中。主机管理文件/etc/hosts的记录格式一般为:
  6. IP地址  设备名称  设备别名表
  7. /etc/hosts例:
  8. 192.168.88.1    host1  loghost
  9.     ..........

  10. 当局部网内增加新设备时,需要在每台设备上修改或追加这类管理信息,入网设备数越多,网络管理亦越麻烦。因此, 当局部网具有一定的规模后, 一般常采用NIS (Network Informaion Service)来进行管理。
  11. 利用NIS管理网络时,将一些共同的管理文件集中于一台计算机上,称该计算机 为NIS主服务器(NIS MasterServer)。 处于该NIS主服务器管辖下的各台设备在需 要调用外部管理信息时,向主服务器进行查询并利用查询结果。 新增或删减网内设 备时,只须修改服务器上的相应管理文件即可。这样,在一定程度上可以减少管理工作量。
  12. 将局部网连入广域网时,随着设备数量之巨增, 如果仍采用单一管理文件或NIS的平面式网络管理方法,则显得相当勉强。因为,广域网内的计算机数以万计, 要将 所有关联的地址全部记录于一台计算机之一个管理文件,势必造成该文件之巨大化。 这种方法既消耗检索时间,又将增加误记的可能性。另外,采用NIS时,由于共通管理 文件的尺寸增大,在网络内交换管理信息时,将占用通讯线路的大量频域, 降低实效 通讯速度。同时,这种集中管理方法又会降低整个网络的可靠性。
  13. 因此,在大规模广域网中之IP地址查询方面,需要一些不同于上诉方法的分布式 处理技术。目前,在TCP/IP大规模网络中,服务最为稳定的是域名系统(DNS : Domain Name Server)。在当今网络世界中,DNS已成为一种公认的网络标准, 为 各国,各地区,各部门所采用。
  14. 1.2 DNS-域名服务管理系统 DNS具有以下一些重要特征:
  15.    (1)        DNS适合于任何网络规模,它不依赖于大规模的IP地址映射表。
  16. (2)        DNS采用分布式数据系统结构,易于管理,网络运行可靠性高。
  17. (3)        在DNS系统中,新入网的IP信息,在需要时可以自动地播放至网络的任意角落。

  18. DNS :IP信息的传播
  19.      某一计算机A需要查询自己所不知道的IP信息时, 只需向DNS服务器提出请求,委托DNS服务器代理查询即可。DNS采用多级层次树型结构。 DNS服务器受理查询请求之后, 首先对存放于该服务器的数据库进行检索(该数据库一般被存放于cache中)。如果发现被请求地址,则将检索结果送回给计算机A;如果在该服务器上仍未能获得该地址, 该服务器则将相应的请求转送至自己的上级站,直至获得结果为止(若 查询至最终级站仍无法获得结果时,则将出错信息返回给查询者)。
  20. 在广域网中,各台入网设备均依照一定的规则被划分在相应的区段中,一般称这 种区段为域。 各域内都设有一台或多台域名服务器,为所管辖范围内之计算机提供设备名与IP地址的映射服务。各部门的域名服务器必须具有统一的通讯标准及合法的处理权限, 以便使各网络间得以准确地交换IP及寻找信息。局部网之域名服务器 从上级站获得检索结果后, 除将其反送给查询者外,自己还在内存中保留一份备份, 供再次查询时使用。
  21. 18.2 DNS系统概要
  22. 18.2.1 DNS的层次结构
  23. 为进行分散并行处理,与UNIX的文件系统相类似,DNS采用树型层次结构。DNS虽 被用于进行设备名与IP地址之映射,但在广域网中,并不存在保存有整个广域网之IP地址的设备, 也没有这种必要。在广域网中,IP地址信息被有规律,有计划地分散在 各子网的域名服务器中。在DNS系统内存在着一个最上级服务器,通常称之为根点服务器(root server)。 各国家,地区之根点服务器为国家,地区间网络提供IP查询之 转向服务。具体的映射是由其下属的各级服务器所实现的。
  24. 在中国,ChinaNet之根域(top domain)名为cn。世界各国,地区之根域名均依照 国际标准化组织的规定, 采用双字符表示,但亦有例外。由于历史原因,在美国仍采 用着之三字符根域表示。
  25. 对于二级域名,各国有各国的规定。ChinaNet之二级域名定义如下:
  26.       edu教育科研机关    com商业性组织       gov政府机关
  27.       net网络管理机关    org非盈利性组织

  28.     在ChinaNet上,还将采用下述区域名表示法:
  29.        beijing北京地区    shanghai上海地区      tianjin天津地区
  30.        ...... ........

  31. 各根点之一级域名服务器仅负责其二级域的IP地址信息。二级域名服务器则仅 为其  
  32. 属性范围内的各个三级域提供服务。三级域以下的各子域则由各个入网单位自己管理。
  33. 三级域之域名一般由各个国家的网络管理中心(NIC:Netwotk Informaion Center)所统
  34. 一命名和管理。
  35.     ChinaNet亦即CNIC主服务器之域名表示则为ns.cnc.ac.cn.
  36. 在中国,ChinaNet由CNIC(China Network Information Center)统一负责IP地址分配,
  37. 及二,三级域名之命名。三级域名常常以各单位的英文缩写来命名。例如, 北京大学为
  38. pku,清华大学为tu,东北大学为enu,大连理工大学为dlut等。因此,这些单 位的三级
  39. 域表示为:  pku.edu.cn,tu.edu.cn,neu.edu.cn,dlut.edu.cn ..........
  40. 四级以下的域名由各三级域名所属单位各自命名, 一般为各个下属机关,部门, 学科之
  41. 英文名缩写,但必须唯一。 为书写方便,各子域名的字符数也不宜过多(采用双字符的
  42. 较多)。
  43. 18.2.2 DNS的动作原理
  44.    如上所述,为加入广域网,各单位在生成各子域之前,必须针对自己的属性,向各所在国之
  45. NIC申请并获取正式的三级域名,由NIC为其指定上级域。 在ChinaNet上构 筑教育,科研
  46. 部门网络时,二级域为edu。该属性下的各入网单位要委托edu域代管自己的域外信息。凡
  47. 不属于自己所在域的信息均需经edu域名服务其所获取。
  48. 在此,假定edu下afo三级域存在,afo内又分有一些相应的四级子域.以cs域下计算机panda
  49. 查询rose.cs.tu.edu.cn为例,让我们来看一下DNS的动作。
  50. DNS的动作过程如下:
  51. panda.cs.afo.edu.cn试图用telnet命令与rose.cs.tu.edu.cn连接。但由于不知道对方地址, 故向自己之所在域名服务器ns.cs.afo.edu.cn提出查询请求。
  52. (1)        ns.cs.afo.edu.cn受理该请求后,首先检索内存中存放的IP地址表.如发现了该地址,
  53. 则将其反送给panda.cs.afo.edu.cn。如未能发现, 则将查询请求转交给上级域服务
  54. 器。如此重复至二级域edu至服务器ns.edu.cn。
  55. (2)        ns.edu.cn检查被查询的IP信息之所在三级域,将相应的三级服务器ns.tu .edu. cn
  56. 信息(一般称之为NS记录)反送给ns.cs.afo.edu.cn,ns.cs.afo.edu.cn则利用该
  57. 信息向ns.tu.edu.cn请求查询rose.cs.tu.edu.cn。
  58. (3)        ns.tu.edu.cn将rose.cs.tu.edu.cn所在域cs.tu.edu.cn之服务器ns.cs.tu.edu.cn
  59.     信息反送给ns.cs.afo.edu.cn。
  60. (4)        ns.cs.afo.edu.cn向ns.cs.tu.edu.cn请求查询rouse.cs.tu.edu.cn。ns.cs.tu.edu.cn检索自己管理的IP地址表,将检索结果反送给ns.cs.afo.e du.cn。
  61. (5)        ns.cs.afo.edu.cn将所获得的信息(通常称之为A记录)反送给panda, 并将该信息存
  62.     入内存中的IP地址表,以供再用。
  63. (7)        panda用获得的信息与rose.cs.tu.edu.cn试连。
  64. (以后的过程与DNS无关,在此予以省略)
  65.    在上述动作过程中应该注意的是,DNS的查询过程并非递归过程。各中间站仅向查询
  66. 服务器反送相应的NS(Name Server)记录。最终的查询是在查询服务器 与含有被查询信
  67. 息之域名服务器之间进行的.各中间站上并不缓存相应的NS记录 ,即各中间站没有必要保
  68. 存与己无关的冗余信息。这使得广域网中的所有IP地址映射信息能够分散于各个域名服
  69. 务器,以达到数据分散,控制独立之目的。
  70. 18.2.3 DNS服务器分类
  71. 一般的UNIX工作站上均配有相应的DNS软件。最常用的是BIND(Berkeley Inter net Name Domain)软件。
  72. BIND软件在概念上由服务器(server)和解释器(resolver)两个部分所组成。服务器用于对查询请求加以应答,它一般为一个独立的进程,常驻于系统内部. 解释器 则用于向服务器进程提出查询请求。解释器一般并非为一个常驻进程, 而是作为一 些库程序(libresolv.a等)存放于系统中,以供查询者动态(或静态)调用.该程序库提供与域名服务器之连接,及信息交换方法。除服务器外,一般的计算机上仅需备有解释器代码,即可连入广域网。但应该注意的是,从系统及网络的安全性角度来考虑,一些UNIX系统原来配备的BIND软件因版本陈旧, 往往不为人们所利用。因此,在另外装入新版本时,对于一些系统(例SunOS 4.1.x等)有必要重新生成解释器用库程序, 否则,ftp,telnet,rlogin等需要与解释器库程序(libresolv.a)进行动态连接的实用程序将无法使用。
  73. BIND的服务器由名为named的一个常驻进程所实现。根据其所起的作用之不同, 其运行方式可分类如下:
  74. 主服务器(primary server):
  75. 负责提供所管辖之域内的全部IP地址映射,保存相应的映射表,并为上级站 所认可。 一个域内只能存在一个主服务器。
  76. 二级服务器(secondary/slave server):
  77. 负责提供所管辖之域内的全部IP地址映射 ,保存来自于主服务器的IP映射表。 用于在主服务器故障,或过于拥挤时,提供代换服务,以提高网络的运行性能。
  78. 缓存服务器(cache/hint server):
  79. 在域名服务器中,为了提高检索速度,一般都在内存中开辟缓存. 在该缓存 区中保存具有一定生存期限的查寻数据. 缓存服务器即是仅具备这种缓存 区,而不具备下属域处理权限的一种特殊的域名服务器.
  80. BIND软件仍在不断的进行着版本更新,以适应新的安全性,管理性, 及IPv6等新 技术之需要.BIND当前(1997年6月)之最新版本为BIND 8.1.
  81. 应该注意的是, BIND 8.1问世以后, 域名服务器的设定与维护出现了一些很大 的变化. 与BIND 4.X.X相比,BIND 8.1又纠正了一些错误,增添了以下新的功能:
  82. (1)提供DNS之动态更新功能(RFC 2136)
  83. (2)提供DNS更新通知功能(RFC 1996)
  84. (3)提供更加充实的记录功能
  85. (4)可以进行IP地址级查寻控制,及域间传送,修改权限控制
  86. (5)改进了域间传送效率

  87. 下面,让我们以介绍一下DNS的具体生成,及管理方法.
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP