《UNIX环境高级编程》读书笔记之系统数据文件和信息

Posted wzjhoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《UNIX环境高级编程》读书笔记之系统数据文件和信息相关的知识,希望对你有一定的参考价值。

1.UNIX系统口令文件包括了下图所看到的的各字段,这些字段包括在<pwd.h>中定义的passwd结构体中

技术分享

POSIX定义了两个获取口令文件项的函数。

在给出用户登录名或用户ID后。这两个函数就能查看相关项。

#include <pwd.h>

struct passwd *getpwuid(uid_t uid);

struct passwd *getpwnam(const char *name);

假设想要查看整个口令文件,则要用到以下三个函数:

#include <pwd.h>

struct passwd *getpwent(void);//返回口令文件里的下一记录

void setpwent(void);//定位口令文件到开口处

void endpwent(void);//关闭口令文件。打开口令文件之后,一定要记得关闭口令文件


2.为了安全的考虑,非常多系统将加密口令存放在一个称为阴影口令文件的地方。

文件里存放的字段例如以下图:

技术分享

与訪问口令文件的一组函数相似,有还有一组函数能够訪问阴影口令文件。

#include <shadow.h>

struct spwd *getspnam(const char *name);

struct spwd *getspent(void);

void setspent(void);

void endspent(void);


3.组文件

UNIX组文件包括下图所看到的的字段。这些字段也包括在<grp.h>中定义的group结构中。

技术分享

POSIX定义下列两个函数来依据username或用户ID来查找用户所属组的信息。

#include <grp.h>

struct group *getgrgid(gid_t gid);

struct group *getgrnam(const char *name);

与訪问口令文件类似。

假设要訪问整个组文件,则要用到下列三个函数:

#include <grp.h>

struct group *getgrent(void);

void setgrent(void);

void endgrent(void);









以上是关于《UNIX环境高级编程》读书笔记之系统数据文件和信息的主要内容,如果未能解决你的问题,请参考以下文章

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

《Unix环境高级编程》 阅读笔记之三 - 文件I/O

《UNIX环境高级编程》笔记——3.文件IO

UNIX环境高级编程笔记之线程

UNIX环境高级编程笔记之高级I/O

读书笔记《Unix编程艺术》四