我从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上编写等价的函数,那就太好了。
最佳答案
您可能想使用getpwent
及其相关功能。
函数返回一个指向包含
密码数据库中记录的细分字段(例如。,
本地密码文件getpwent()
、NIS和LDAP)。第一次/etc/passwd
被调用,它返回第一个条目;此后,它
返回连续的条目。getpwent()
函数倒回密码的开头
数据库。setpwent()
函数用于在
已执行所有处理。
如果要获取特定用户的密码输入,可以使用endpwent()
或其变体之一。
函数返回一个指向包含
密码数据库中记录的细分字段(例如。,
与
用户名。