APUE 口令文件相关

linux中包含/etc/passwd(下称口令文件) 和阴影口令文件

在linux最初密码字放在口令文件中,而这个文件是人人可读的,缺少安全性!故现在系统一般放于阴影口令中!口令文件只存放一个X,或者*占位符!

阴影口令是一个单项加密处理过的用户口令副本!

口令文件中,各个字段按:分隔,这些字段包含在<pwd.h>的passwd结构体中

root:X:0:0:root:/root:/bin/bash

用户名             char *pw_name

加密口令         char *passwd

用户ID             uid_t pw_uid

组ID                gid_t pw_gid

注释                //用户的地址 号码之类的信息

初试工作目录 char * pw_shell

shell目录        char *pw_dir

用户访问类     

下次口令更改时间 time_t change

账户有效时间


读取特定id的psswd信息

<pre name="code" class="cpp">#include <pwd.h>
struct psswd* getpwuid(uit_t uid);//根据uid 返回psswd结构体
struct psswd* getpegid(gid_t gid);//根据gid返回


psswd是一个静态变量,so要修改是赋值到临时变量


以下可以用于读取个口令文件信息

#include <pwd.h>
struct psswd* getpwent(void);//返回当前指向的吓一跳pwd,当文件到尾时返回NULL,可循环逐条读取pwd信息

void setpwent(void);//定位到文件起始处
void endpwent(void);//关闭文件

一般度getpwent之前先调用setpwent 确保当前指向文件最开始

最后用endpwdent关闭文件


阴影口令

#include <shadow.h>
struct spwd *getspent();//返回当前指向的吓一跳pwd,当文件到尾时返回NULL,可循环逐条读取pwd信息

void setspwent(void);//定位到文件起始处
void endspwent(void);//关闭文件









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值