【发布时间】:2019-11-25 12:35:51
【问题描述】:
我从 IBM AIX 上的一个应用程序中获得了源文件,我正在尝试在 Linux 上构建它们。但是,在 AIX 上存在的名为 usersec.h 和 userpw.h 的头文件在 Linux 上不存在。因此,在 Linux 上,这些函数出现编译器错误:
在usersec.h声明
int getuserattr (char *, char *, void *, int);
更多关于getuserattr的信息是here
在userpw.h声明
struct userpw
{
char *upw_passwd; /* user's passwd */
unsigned int upw_flags; /* flags of restrictions */
time_t upw_lastupdate; /* date of last passwd update */
char upw_name[PW_NAMELEN]; /* user's name */
};
struct userpw *getuserpw ();
int setpwdb ();
int endpwdb ();
更多信息请查询:getuserpw、setpwdb and endpwdb
如果有人知道如何在 Linux 上编写等效函数,那就太好了。
【问题讨论】:
-
您是否对
userpw结构应包含的内容以及getuserattr()、getuserpw()、setpwdb()和endpwdb()的预期行为有更多见解? -
在 Linux 上无法读取用户密码,只能存储哈希值。
-
getspent() 和朋友可能是 pwdb 最接近的等价物。
-
@StefOverflow 非常感谢您的评论。我添加了指向这些函数的文档的链接。
标签: c linux migration aix porting