/etc/passwd & /etc/shadow文件学习
2011-09-26 13:04
363 查看
Unix系统中的口令文件:/etc/passwd里面各字段定义在<pwd.h>中的passwd 结构中。其中共有10个字段,大多数平台至少支持其中的7个(Linux中一般包含前七个字段)。下面说下 struct passwd结构成员:
struct passwd{ char *pw_name; /*用户名*/ char *pw_passwd; /*加密口令*/ uid_t pw_uid; /* 用户ID*/ gid_t pw_gid; /* 组ID*/ char *pw_gecos; /* 注释字段*/ char *pw_dir; /*初始shell*/ char *pw_class; /*用户访问类*/ time_t pw_change; /* 下次更改口令时间*/ time_t pw_expire; /*账户到期时间 */ };下面介绍几个可以用来查询这个口令文件的函数:
#include<pwd.h> /* 这两个函数,只需给出用户登录名和用户ID,就可查询相关项了 Return Value: 若成功,返回指向passwd 结构的指针,出错返回NULL */ struct passwd *getpwuid(uid_t uid); struct passwd *getpwnam(const char *name); /*下面三个函数可以用来查看完全的passwd文件 */ struct passwd *getpwent(void); /*成功,返回指向passwd 结构的指针,失败:NULL*/ void setpwent(void); void endpwent(void);对这三个函数的几点说明:(1)调用getpwent时,它返回passwd中的下一个记录项,即一个指向填写好的passwd 结构的指针,每次调用此函数都会重写此结构.(注:在调用此函数后,一定要用endpwent关闭之)(2)setpwent 就类似于rewind,就是将文件偏移量指向开头(3)endpwend 关闭这些文件ex:下面是对getpwnam函数的实现
#include<pwd.h>#include<stdddef.h>#include<string.h>struct passwd *下面说下/etc/shadow文件,先上结构体:
getpwnam(const char *name){
struct passwd *ptr;
setpwent();
while((ptr = getpwent()) != NULL)
if(strcmp(name, prt->pw_name) == 0)
break;
endpwent();
return prt;
}
struct spwd{ char *sp_namp; /*用户登录名*/ char *sp_pwdp; /*加密口令*/ int sp_lstchg; /* 上次更改口令以来经历过的时间*/ int sp_min; /* 经过多少天后允许更改*/ int sp_max; /* 要求更改尚余天数*/ int sp_warn; /*到期警告天数*/ int sp_inact; /*账户不活动之前尚余天数*/ int sp_expire; /*账户到期天数*/ unsigned int sp_flag; /*保留*/ };对shadow文件访问的函数:
#include <shadow.h>注:在FreeBSD 5.2.1和MAC OS X 10.3中,没有shadow结构体,附加的账户信息存放在passwd文件中。
/*下面两个函数,若成功,刚返回指针,失败返回NULL*/
struct spwd *getspnam(const char *name);
strcut spwd *getspent(void);/*类似于passwd 文件的访问操作*/
void setspent(void);
void endspent(void);
相关文章推荐
- /etc/passwd&/etc/shadow文件分析
- 鸟哥私房菜学习笔试(三)——/etc/passwd和/etc/shadow 文件格式
- Linux学习笔记10 权限,/etc/passwd,/etc/shadow,useradd,userdel,id,finger
- /etc/passwd&&/etc/shadow
- linux系统中/etc/passwd ; /etc/shadow ; /etc/group 这个三个有关用户信息的文件解释
- /etc/passwd /etc/shadow 等用户配置文件及各字段含义
- linux中/etc/passwd文件与/etc/shadow文件解析
- linux:用户和组文件解释(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow)
- [ARM-Linux开发]linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
- linux etc下 passwd 、shadow和group文件详解
- linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
- linux:用户和组文件解释(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow)
- /etc/passwd&/etc/shadow
- /etc/passwd & /etc/shadow 详解
- Linux学习日记 —— 7.1.3 用户和用户组管理-用户配置文件-组信息文件/etc/group和组密码文件/etc/gshadow
- linux 系统中 /etc/passwd 和 /etc/shadow文件详解
- /etc/passwd & /etc/shadow 详解
- linux:用户和组文件解释(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow)
- linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
- Linux /etc/passwd文件和Linux /etc/shadow