APUE学习笔记——6 系统数据文件与信息
1、用户口令:/etc/passwd文件
struct passwd
{
char * pw_name; /* 用户名e, POSIX.1 */
char * pw_passwd; /* 密码*/
uid_t pw_uid; /* 数值化用户ID, POSIX.1 */
gid_t pw_gid; /* 数值化组ID, POSIX.1 */
char * pw_gecos; /* 注释 */
char * pw_dir; /* 用户根目录, POSIX.1 */
char * pw_shell; /* 默认shell, POSIX.1 */
char *pw_class; /* 用户访问类 */
time_t pw_change; /* 下次更改密码时间 */
time_t pw_expire; /* 账户到期时间 */
};
#include <pwd.h>
struct passwd *getpwuid(uid_tuid);
struct passwd *getpwnam(const char *name);
Both return: pointer if OK,NULLon erro
#include <pwd.h>
struct passwd *getpwent(void);
Returns: pointer if OK,NULLon error or end of file
void setpwent(void);
void endpwent(void);
#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 match */
endpwent();
return(ptr); /* ptr is NULL if no match found */
}
2、阴影口令/etc/shadow
struct passwd
{
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; //保留
}
#include <shadow.h>
struct spwd *getspnam(const char *name);
struct spwd *getspent(void);
Both return: pointer if OK,NULLon error
void setspent(void);
void endspent(void);
3、组文件/etc/group
struct group
{
char *gr_name;
char *gr_passwd;
int gr_gid;
char **gr_mem;
}
</pre></div><div><div>相关函数:</div></div><div><pre name="code" class="cpp">#include <grp.h>
struct group *getgrent(void);
Returns: pointer if OK,NULLon error or end of file
void setgrent(void);
void endgrent(void);
4、附加组
#include <unistd.h>
int getgroups(intgidsetsize,gid_tgrouplist[]);
Returns: number of supplementary group IDs if OK,−1 on error
#include <grp.h> /* on Linux */
#include <unistd.h> /* on FreeBSD, Mac OS X, and Solaris */
int setgroups(intngroups,const gid_tgrouplist[]);
#include <grp.h> /* on Linux and Solaris */
#include <unistd.h> /* on FreeBSD and Mac OS X */
int initgroups(const char *username,gid_tbasegid);
Both return: 0 if OK,−1 on error
APUE学习笔记——6 系统数据文件与信息的更多相关文章
- 《UNIX环境高级编程》读书笔记之系统数据文件和信息(1)
1.UNIX系统口令文件包括了下图所看到的的各字段,这些字段包括在<pwd.h>中定义的passwd结构体中 POSIX定义了两个获取口令文件项的函数. 在给出用户登录名或用户ID后.这两 ...
- apue 第6章 系统数据文件和信息
在给出用户登录名或数值用户ID后,这两个函数就能查看相关项. #include <sys/types.h> #include <pwd.h> struct passwd *ge ...
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- apue学习笔记(第六章 系统数据文件和信息)
UNIX系统的正常运作需要使用大量与系统有关的数据文件,例如,口令文件/etc/passwd和组文件/etc/group就是经常被多个程序频繁使用的两个文件. 口令文件 UNIX系统口令文件包含如下字 ...
- [APUE]系统数据文件与信息
一.口令文件 UNIX口令文件包含下表中的各个字段,这些字段包含在 由于历史原因,口令文件是/bin/passwd,而且是一个文本文件,每一行都包括了上表中的七个字段,字段之间用":&quo ...
- UNIX环境高级编程 第6章 系统数据文件和信息
UNIX系统的正常运作需要用到大量与系统有关的数据文件,例如系统用户账号.用户密码.用户组等文件.出于历史原因,这些数据文件都是ASCII文本文件,并且使用标准I/O库函数来读取. 口令文件 /etc ...
- UNIX系统高级编程——第六章-系统数据文件和信息-总结
口令文件: /* The passwd structure. */ struct passwd { char *pw_name; /* Username. */ char *pw_passwd; /* ...
- [06]APUE:系统数据文件和信息
[a] getpwent / setpwent / endpwent #include <pwd.h> struct passwd *getpwent(void) //成功返回指针,出错或 ...
- #Linux学习笔记# Linux系统查看文件内容的命令
1.cat 连结多个文件的内容并显示在屏幕上:如果没有指定文件或文件名为“-”,则读取标准输入.语法如下: cat [option] ... [file] ... 常用的选项有: 选项-n:编号所有行 ...
随机推荐
- JSON.stringify without quotes on properties?
https://stackoverflow.com/questions/11233498/json-stringify-without-quotes-on-properties/11233515 va ...
- Storm概念讲解,工作原理
一.storm是一个用于实时流式计算的分布式计算引擎,弥补了Hadoop在实时计算方面的不足(Hadoop在本质上是一个批处理系统). 二.storm在实际应用场景中的位置一般如下: 其中的编号1~5 ...
- Python学习笔记之函数参数传递 传值还是传引用
在学完Python函数那一章节时,很自然的的就会想到Python中函数传参时传值呢?还是传引用?或者都不是? 在回答上面的问题之前我们先来看看下面的代码: 代码1: def foo(var): v ...
- SVN 命令符号详解
L abc.c # svn已经在.svn目录锁定了abc.c M bar.c # bar.c的内容已经在本地修改过了 M baz.c # baz.c属性有修改,但没有内容修改 X 3rd_party ...
- NOIP树上问题总结
这几年考了好几次树上问题: NOIP2012 疫情控制(二分答案+倍增+贪心) NOIP2013 货车运输(最大生成树+倍增) NOIP2014 联合权值(勉强算作树形dp的傻逼题) NOIP2015 ...
- SaltStack使用salt-ssh模式-第十一篇
salt-ssh介绍 1.salt-ssh 是 0.17.0 新引入的一个功能,不需要minion对客户端进行管理,也不需要master. 2.salt-ssh 支持salt大部分的功能:如 grai ...
- jsp选项卡导航实现——模板
效果 刚进来页面的样子 在第二个选项卡上方时 点击后 离开 同样第三个 点击 移走鼠标 代码 <%@ page contentType="text/html;charset=UTF-8 ...
- Python学习札记(八) Basic5 循环
参考:循环 Note: A.for···in循环: 1.for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句. eg. #!/usr/bin/env python3 list_A ...
- No input file specified. nginx服务器报错解决
配置虚拟域名的时候报No input file specified. 仔细观察一圈也没有发现任何错误,最终,我把注意力放到 \ 上.才发现问题. 以前我都是直接copy文件路径过去 文件里面 都是使用 ...
- MySQL-性能优化-优化设计和设计原则
MySQL性能优化目的如何合理的设计数据库?什么样的数据库设计才能给后期DBA优化提供基石? 数据库设计与程序设计的差异? 数据库设计早期优化1. 关系明确(理清表之间的关系,可以通过冗余的方式提高效 ...