课程咨询 : 020-87532245 24小时热线:15622781509 咨询QQ:3061057839

广州C++培训 > 达内新闻 > C语言的口令文件
  • C语言的口令文件

    发布:广州C++培训      来源:达内新闻      时间:2017-01-09

  • 广州达内C++培训的小编发现UNIX口令文件包含在各个字段,

    由于历史原因,口令文件是/bin/passwd,而且是一个文本文件,每一行都包括了上表中的七个字段,字段之间用":"分隔,例如一个文件中可能有以下三行:

    root:jheVopR58x9Fx:0:1:The superuser:/:/bin/sh n o b o d y : * : 6 5 5 3 4 : 6 5 5 3 4 : : / : stevens:3hKVD8R58r9Fx:224:20:Richard Stevens:/home/stevens:/bin/ksh

    对于这些登陆项需要注意以下几点:

    加密口令字段是由单向不可逆算法加密产生的13个可打印字符(在64字符集中[a-zA-Z0-9./])。用nobody用户ID和组ID都是大家都可读写的文件

    口令文件中某些字段可能是空,如果密码口令为空则说明用户没有口令。nobody用户有两个空字段:注释字段和初始shell字段,空注释字段不产生任何影响,空shell字段表示取系统默认值,一般是/bin/sh。

    支持finger命令的某些系统支持注释字段中的附加信息,其中各部分之间用逗号分隔:用户姓名,用户地址,用户电话。如果注释字段中的用户姓名是"&",则它被替换为登陆名。例如可以有如下记录:

    stevens:3hKVD8R58r9Fx:224:20:Richard &, B232, 555-1111, 555-2222: / h o m e / s t e v e n s : / b i n / k s h

    POISX.1只定义了两个存取口令文件中信息的函数:参数为用户登录名或者是数值ID:

    ```

    #include <sys/types.h>

    #include

    struct passwd getpwuid(uid_t uid);

    struct passwd getpwnam(const char *name);

    返回值:成功则为指针,出错为NULL

    getpwuid由ls命令使用,用于从i节点中的数值用户ID获取用户登录名。getpwnam在输入登录名时由login程序使用。可用以下三个函数查看整个口令文件:

    #include <sys/types.h>

    #include

    struct passwd *getpwent(void);

    返回值:成功返回指针,出错或到达文件尾端返回NULL

    void setpwent(void);

    void endpwent(void);

    ```

    调用getpwent时,返回口令文件中的下一个记录,它返回一个由它填写的passwd结构的指针,每次调用此函数都重写该结构。

    setpwdent函数定位文件到开始处,endpwent关闭这些文件。再用getpwent查看完口令文件后一定要用endpwent关闭这些文件。getpwent函数并不知道何时关闭这些文件。

    推荐文章

上一篇:C语言的输出数据表

下一篇:UNIX的组文件

最新开班日期  |  更多

c++--零基础周末班

c++--零基础周末班

开班日期:2月28日

c++--零基础全日制班

c++--零基础全日制班

开班日期:2月28日

c++--免费训练营

c++--免费训练营

开班日期:2月28日

c++--高薪就业班

c++--高薪就业班

开班日期:2月28日

  • 网址:http://gz.c.tedu.cn     地址:广州市天河北五山路 141 号尚德大厦 627
  • 课程培训电话: 020-87532245 24小时热线:15622781509 咨询QQ:3061057839     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56