linux用户信息

1.用户登录Linux系统的时候,需要一个用户名和密码,登录成功后,进入一个shell,得到一个uid,这是一个整数,相当于一个人的身份证号码。
获取uid:uid_t getuid();
获取登录名: char* getlogin()
2.在/etc/passwd包含一个用户账号的数据库,每一行代表一个用户的信息,格式如下
用户名:加密口令:用户标识符:组标识符:全名:家目录:默认shell

3.标准的用户信息接口
(1)根据uid号码获取信息:struct passwd getpwuid(uid_t uid);
(2)根据登录名获取信息:struct passwd
getpwnam(const char name);
struct passwd的成员如下:
char
pw_name 用户登录名
uid_t pw_uid 用户UID
gid_t pw_gid GID号
char pw_dir 用户家目录
char
pw_gecos 用户全名
char* pw_shell 用户默认shell

4.扫描密码文件中的所有信息
void endpwent(); 终止读取
struct passwd* getpwent(); 返回读取到的信息
void setpwent(); 重新设置读取的位置到开头
getpwend返回每个用户信息

这三个函数的行为有点类似于opendir,readdir,closedir;

//下面这个程序读取密码文件所有的信息,只打印登录名字
#include
#include
#include
#include
int main()
{
        struct passwd* ptr = NULL;
        while( (ptr = getpwent()))
        {
                printf("%s\n",ptr->pw_name);

        }
        return 0;
}
//下面这个程序的功能与上面相差不多,首先将指针设置在文件开头,在遍历结束后,关闭指针
#include
#include
#include
#include
int main()
{
        setpwent();
        struct passwd* ptr = NULL;
        while( (ptr = getpwent()))
        {
                printf("%s\n",ptr->pw_name);

        }
        endpwent();

        return 0;
}

Original: https://blog.csdn.net/weixin_42581560/article/details/127815558
Author: 歌者文明
Title: linux用户信息

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/653216/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球