栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言编程中从密码文件获取数据的函数总结

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言编程中从密码文件获取数据的函数总结

C语言getpw()函数:取得指定用户的密码文件数据
头文件:

#include   #include 

定义函数:

int getpw(uid_t uid, char *buf);

函数说明:getpw()会从/etc/passwd中查找符合参数uid所指定的用户账号数据, 找不到相关数据就返回-1。

所返回的buf 字符串格式如下:
账号:密码:用户识别码(uid):组识别码(gid):全名:根目录:shell

返回值:返回 0 表示成功, 有错误发生时返回-1.

附加说明
1. getpw()会有潜在的安全性问题, 请尽量使用别的函数取代。
2. 使用shadow 的系统已把用户密码抽出/etc/passwd, 因此使用getpw()取得的密码将为"x"。

范例

#include 
#include 
main()
{
  char buffer[80];
  getpw(0, buffer);
  printf("%sn", buffer);
}

执行:

root:x:0:0:root:/root:/bin/bash


C语言getpwnam()函数:从密码文件中取得指定账号的数据
头文件:

#include   #include 

定义函数:

struct passwd * getpwnam(const char * name);

函数说明:getpwnam()用来逐一搜索参数name 指定的账号名称, 找到时便将该用户的数据以passwd 结构返回。passwd 结构请参考getpwent()。

返回值:返回 passwd 结构数据, 如果返回NULL 则表示已无数据, 或有错误发生.

范例


#include 
#include 
main()
{
  struct passwd *user;
  user = getpwnam("root");
  printf("name:%sn", user->pw_name);
  printf("uid:%dn", user->pw_uid);
  printf("home:%sn", user->pw_dir);
}

执行:

name:root
uid:0
home:/root

C语言getpwuid()函数:从密码文件中取得指定uid的数据
头文件:

#include   #include 

定义函数:

struct passwd * getpwuid(uid_t uid);

函数说明:getpwuid()用来逐一搜索参数uid 指定的用户识别码, 找到时便将该用户的数据以结构返回结构请参考将该用户的数据以passwd 结构返回. passwd 结构请参考getpwent()。

返回值:返回 passwd 结构数据, 如果返回NULL 则表示已无数据, 或者有错误发生.

范例

#include 
#include 
main()
{
  struct passwd *user;
  user= getpwuid(6);
  printf("name:%sn", user->pw_name);
  printf("uid:%dn", user->pw_uid);
  printf("home:%sn", user->pw_dir);
}

执行:

name:shutdown
uid:6
home:/sbin

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/64897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号