unix口令文件/etc/passwd 包含了下表所示的字段:

系统定义了两个获取口令文件项的函数,在给出用户登录名或数值用户ID后,这两个函数能够查看相关项。

struct passwd *getpwuid(uid_t uid);

struct passwd *getpwnam (const char *name);

getpwuid函数由ls程序使用,将i节点中的数字用户ID映射为用户登陆名,在键入登录名时,getpwnam函数由login程序使用。

如果要查看的只是登录名或用户ID,这两个函数就能满足要求,但是有些程序要查看整个口令文件,下面三个函数可满足此要求:

调用getpwent,它返回口令文件的下一个记录项,也就是返回一个由他填好的passwd结构的指针。

函数setpwent反绕它所使用的文件,endpwent关闭这些文件,在使用getpwent查看完口令文件后,一定要调用endpwent关闭这些文件。

下列程序给出了getpwnam函数的一个实现

#include <pwd.h>
#include <stddef.h>
#include <string.h>struct passwd *getpwnam(const char *name)
{struct passwd *ptr;setpwent();while((ptr = getpwent())!= NULL)if(strcmp(name, ptr->pw_name)==0)break;   //found a matchendpwent();return(ptr);   //ptr is NULL if no match founc
}

在函数开始出调用setpwent是自我保护措施,以确保如果调用者在此之前已经调用getpwent打开了有关文件情况下,反绕有关文件使它们定位到文件开始处。

阴影口令:

加密口口令是经过单向加密算法处理过的用户口令副本,因为此算法是单向的,所以不能从加密口令猜测到原来的口令。但可以对口令进行猜测,将猜测的口令经算法变成加密形式,然后将其与原加密口令对比。

为防止这样,系统将加密口令放在另一个称为阴影口令的文件中(shadow password),该文件至少包含用户名和加密口令。

其他数据文件:

上面讨论了两个系统数据文件-口令文件和组文件,在日常中,Unix还使用其他文件,一般情况下,对于每个数据文件至少有3个函数:

1.get函数:读下一个记录,该函数一般返回指向一个结构的指针,当达到文件尾端时返回空指针

2.set函数,打开相应数据文件,然后反绕该文件,如果希望在文件起始开始处理,则调用此函数

3.end函数:关闭相应数据文件

下表示访问系统数据文件的一些例程

登陆账户记录:

大多数unix系统都提供两个数据文件,utmp文件记录当前登陆到系统的各个用户,wtmp文件跟踪各个登陆和注销事件,每次写入这两个文件中的是包含下列结构的一个二进制记录:

登陆时,login填写此类结构,然后将其写入到utmp文件中,同时页将其填写到wtmp文件中,注销时init进程将utmp文件相应记录删除。将一个新纪录填写到wtmp文件中。

系统标识:

命令 uname -a //可以返回系统的版本信息和内核信息等

Unix环境高级编程-系统数据文件和信息相关推荐

  1. UNIX环境高级编程——系统数据文件和信息

    6.1 引言 UNIX系统的正常运行需要使用大量与系统有关的数据文件,这些文件都是ASCII文本文件,并且使用标准I/O库读这些文件. 6.2 口令文件 UNIX口令文件是/etc/passwd,每一 ...

  2. (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  3. UNIX环境高级编程笔记之文件I/O

    一.总结 在写之前,先唠几句,<UNIX环境高级编程>,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是"哇"这种很吃惊的表情.其实大概三年前,那会 ...

  4. 开发日记-20190827 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 3

    Referred Blogs 文件描述符标志,文件状态标志 Linux中文件描述符fd和文件指针flip的理解 Linux编程–文件描述符fd 文件共享 Unix支持在不同进程间共享文件. 内核使用了 ...

  5. 《unix环境高级编程》笔记4——系统数据文件和信息

    文章目录 系统数据文件和信息 口令文件 获取口令文件 getwpuid getpwnam 阴影口令 组文件 附属组ID 查看附属组ID 其他文件 登录账户记录: 系统标识 uname gethostn ...

  6. 文件和目录(二)--unix环境高级编程读书笔记

    在linux中,文件的相关信息都记录在stat这个结构体中,文件长度是记录在stat的st_size成员中.对于普通文件,其长度可以为0,目录的长度一般为1024的倍数,这与linux文件系统中blo ...

  7. unix环境高级编程(上)-文件篇

    目录 前言 unix基础知识 unix标准化和实现 unix提供的文件IO 文件和目录 标准IO 系统数据文件 前言 笔者将<unix环境高级编程>主要内容总结为三篇:文件篇,进程篇,高级 ...

  8. 5w字总结 Unix系统编程学习笔记(面试向)(Unix环境高级编程/Unix环境程序设计)

    文章目录 一.计算 C语言的数据表示与处理 计算 C语言的基本运算操作 内存表和符号表 类型转换 函数类型的分析 指令 复合指令 句法 函数 函数激活(Activation Record) 函数激活定 ...

  9. unix环境高级编程 pdf_UNIX系统编程宝典,每一本都值得程序员珍藏

    这几本UNIX系统编程宝典,重印无数次,几代程序员都视如珍宝的几本书,小编在出版圈里快十年了,见证了这本书图灵版.异步社区版的出版.营销,对这套书倾注了一定的感情.今天继续分享给你们,好书总会有人还不 ...

最新文章

  1. 关于标签系统的又一点想法。
  2. jquery 分片上传php,php 大文件分片上传
  3. 链式存储mysql_链栈:栈的链式存储结构
  4. Oracle自定义类型
  5. 计算机网络技术专业发展现状,计算机网络技术的发展现状和前景
  6. python什么时候用进程什么时候用线程_Python多线程/多进程释疑:为啥、何时、怎么用?...
  7. linux怎么判断全局符号,Linux下全局符号覆盖有关问题
  8. java正则表达式去除空格_去掉字符串前后所有空格的正则表达式
  9. 通信原理实践(一)——音频信号处理
  10. 开放大学计算机应用基础第三次,江苏开放大学-计算机应用基础第三次.doc
  11. 放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较...
  12. 把prn文件输出到网络打印机
  13. cmd关闭计算机指令,取消CMD自动关机的命令是什么
  14. 本周小折腾记录: ipad和电脑完成同屏功能
  15. 历代治国理政者的教科书——金木水火土的起源之书:周朝的统治大法——《洪范》...
  16. tomcat发布网站的三种方式
  17. Matlab 极坐标平面 插值,如何在极坐标中进行插值
  18. 利用VBA代码合并多个Excel表格
  19. 使用IDEA完成支付宝开放平台的Demo测试
  20. thinkajax入门------验证ThinkAjax.send 、ajaxReturn

热门文章

  1. mysql double 索引_MySQL架构优化实战系列1:数据类型与索引调优全解析
  2. 有趣的超短python代码_Python 学习之——Python超短教程
  3. 关于常见的几种缓存算法
  4. 关于老罗锤子ROM的一些感想
  5. PAT1019 数字黑洞 分数 20
  6. [原创]从东汉谋杀案到罗马的灭亡 - 世界历史的蝴蝶效应
  7. 我的世界中国版怎么加java_我的世界中国版PCJava版不删档测试问题指引
  8. 用阴阳五行解释啥叫数据建模
  9. 掌上实验室V8系列教程(五)定时器中断及应用
  10. 【渝粤教育】电大中专新媒体营销实务 (9)作业 题库