首页 > 代码库 > 读书笔记-APUE第三版-(6)系统数据文件和信息
读书笔记-APUE第三版-(6)系统数据文件和信息
常见系统数据文件
下表列出了常见的系统数据文件及其查找函数。
以/etc/passwd文件为例,读取数据的程序基本框架如下:
void get_pw_entry() { struct passwd *ptr; setpwent(); while ((ptr = getpwent()) != 0) { …… } endpwent(); return ptr; }
- 每个数据文件都提供了一个get方法返回文件下一个记录项。
- set方法充值当前位置到文件开始处。
- end方法关闭数据文件。
- 表格中的getpwnam和getpwuid为查找方法,根据名称或ID查找相应记录项。
passwd文件详解
$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin如上所示:
- 每一列含义依次为:username:password:User ID:Group ID:comment:home directory:shell
- 第二列密码被加密,存储在/etc/shadow中。
- 最后一列登陆Shell代表登陆用户登陆后执行的命令,一般用户都是启动shell进程,一些特殊账号使用nologin可以阻止该账号正常登陆。
- 第四列是用户登陆后所属组ID。用户可以属于多个组,用户登陆后,login程序会调用initgroups函数,读取/etc/group文件,替用户初始化附加组ID。
- 使用finger命令打印用户信息,管理员使用vipw命令编辑passwd文件(比直接编辑文件更安全)。
时间和日期函数
如图所示:
- time_t以秒为单位,为UTC时间(注意time函数不要和times函数混淆)。
- timeval结构存储了毫秒级别的日历时间。
- 如果系统支持,timespec结构中tv_nsec字段精度为纳秒。
- tm结构中包含秒、分、小时、日期等字段,可以是格林尼治时间(gmtime函数),也可以是本地时间(localtime函数)。
- strXXXX系列方法用于格式化时间字符串
其他重要数据文件和函数
- 登录账户:utmp文件存储当前登录所有用户(who命令访问),wtmp记录用户登录和退出(last命令访问)
- 系统标识:utsname结构(uname命令访问)中包含内核名、主机名(gethostname命令访问)、发行版本和体系结构等
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。