-
直接转换口令文件到模块结构图的数据流图方法
资源介绍
第6章 系统数据文件和信息
6.1 引言
有很多操作需要使用一些与系统有关的数据文件,例如,口令文件 / e t c / p a s s w d和组文件
/ e t c / g r o u p就是经常由多种程序使用的两个文件。用户每次登录入 U N I X系统,以及每次执行 l s
- l命令时都要使用口令文件。
由于历史原因,这些数据文件都是A S C I I文本文件,并且使用标准I / O库读这些文件。但是,
对于较大的系统,顺序扫描口令文件变得很花费时间,我们想以非 A S C I I文本格式存放这些文
件,但仍向应用程序提供一个可以处理任何一种文件格式的界面。对于这些数据文件的可移植
界面是本章的主题。本章也包括了系统标识函数、时间和日期函数。
6.2 口令文件
U N I X口令文件 ( P O S I X . 1则将其称为用户数据库 )包含了表6 - 1中所示的各字段,这些字段
包含在< p w d . h >中定义的p a s s w d结构中。
注意,P O S I X . 1只指定p a s s w d结构中7个字段中的5个。另外2个元素由S V R 4
和4 . 3 + B S D支持。
表6-1 /etc/passwd文件中的字段
说 明 struct passwd 成员 P O S I X . 1
用户名 char *pw_name •
加密口令 char *pw_passwd
数值用户I D uid_t pw_uid •
数值组I D gid_t pw_gid •
注释字段 char *pw_gecos
初始工作目录 char *pw_dir •
初始s h e l l(用户程序) char *pw_shell •
由于历史原因,口令文件是 / e t c / p a s s w d,而且是一个文本文件。每一行包含表 6 - 1中所示的
7个字段,字段之间用冒号相分隔。例如,该文件中可能有下列三行:
root:jheVopR58x9Fx:0:1:The superuser:/:/bin/sh
n o b o d y : * : 6 5 5 3 4 : 6 5 5 3 4 : : / :
stevens:3hKVD8R58r9Fx:224:20:Richard Stevens:/home/stevens:/bin/ksh
关于这些登录项请注意下列各点:
• 通常有一个登录项,其用户名为 r o o t,其用户I D是0 (超级用户)。
• 加密口令字段包含了经单向密码算法处理过的用户口令副本。因为此算法是单向的,所