IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

Hi,歡迎來到嵌入式培訓高端品牌 - 華清遠見教育科技集團<北京總部官網>,專注嵌入式工程師培養15年!
當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > linux下獲取用戶基本信息
linux下獲取用戶基本信息
時間:2016-12-30作者:華清遠見

通過c語言基礎庫從獲取linux用戶的基本信息。

1、使用struct passwd管理用戶信息。
        struct passwd
        {
            char *pw_name; /* 用戶登錄名 */
            char *pw_passwd; /* 密碼(加密后)*/
            __uid_t pw_uid; /* 用戶ID */
            __gid_t pw_gid; /* 組ID */
            char *pw_gecos; /* 詳細用戶名 */
            char *pw_dir; /* 用戶目錄 */
            char *pw_shell; /* Shell程序名 */
        };

2、分析相并的系統文件/etc/passwd

      ⑴    root:x:0:0:root:/root:/bin/bash 
              ⑵    daemon:x:1:1:daemon:/usr/sbin:/bin/sh 
              ⑶    bin:x:2:2:bin:/bin:/bin/sh

在passwd文件中記錄的是所有系統用戶
        每一行表示一個完整的struct passwd結構,以':'分隔出每一項值,其7項。

3、獲取系統當前運行用戶的基本信息。
        #include <grp.h>
        #include <pwd.h>
        #include <unistd.h>
        #include <stdio.h>

int main ()
        {
            uid_t uid;
            struct passwd *pw;
            struct group *grp;
            char **members;

            uid = getuid ();
            pw = getpwuid (uid);

            if (!pw)
            {
                printf ("Couldn't find out about user %d.\n", (int)uid);
                return 1;
            }

            printf ("I am %s.\n", pw->pw_gecos);
            printf ("User login name is %s.\n", pw->pw_name);
            printf ("User uid is %d.\n", (int) (pw->pw_uid));
            printf ("User home is directory is %s.\n", pw->pw_dir);
            printf ("User default shell is %s.\n", pw->pw_shell);
            grp = getgrgid (pw->pw_gid);
            if (!grp)
            {
                printf ("Couldn't find out about group %d.\n",
                (int)pw->pw_gid);
                return 1;
            }

    printf ("User default group is %s (%d).\n",
                grp->gr_name, (int) (pw->pw_gid));

    printf ("The members of this group are:\n");
            members = grp->gr_mem;
            while (*members)
            {
                printf ("\t%s\n", *(members));
                members++;
            } 
            return 0;
        }

編譯,結果輸出
        $gcc -o userinfo userinfo.c
        $./userinfo
        I am root.
        My login name is root.
        My uid is 0.
        My home is directory is /root.
        My default shell is /bin/bash.
        My default group is root (0).
        The members of this group are:
                test
                user
                test2

4、查看所有的用戶信息

使用pwd.h定義的方法getpwent(),逐行讀取/etc/passwd中的記錄,每調用getpwent函數一次返回一個完整用戶信息struct passwd結構。
再次讀取時,讀入下一行的記錄。

在使用之前先使用setpwent()打開文件(如果文件關閉)或重定位到的文件開始處,操作結束時使用endpwent()關閉/etc/passwd文件,避免對后面的使用產生負作用。

5、腳本操作,顯示所有用戶的信息中的name

使用cut命令將/etc/passwd中的內容逐行解析,"-d:"以':'將一行劃分出7人字段列,-f1,為第一列
         cut -d: -f1 /etc/passwd

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
主站蜘蛛池模板: 豪顺物流官网-南京物流公司,南京货运公司「全国专线配送」 | 途远VR+_成都VR全景制作_成都360全景漫游_成都720全景航拍_成都途远科技有限公司 | 郑州课桌椅|学生课桌椅|升降课桌椅批发|厂家|价格-新科教育用品 郑州井盖雨水篦子厂家-建联建材 | 山东鲁控电力设备有限公司_高低压电器设备_变压器 | 硬度计,里氏硬度计,布氏硬度计,高强螺栓检测仪,平板导热仪,专业无损检测仪器商-北京时代新天测控技术有限公司-北京时代新天测控技术有限公司 | 四川超声波清洗机厂家-旋转喷淋清洗机设备-成都鑫荣诚超声波科技有限公司 | 聚丙烯酰胺,聚合氯化铝,重金属捕捉剂,污泥调理剂,活性氧化铝,生石灰,反渗透阻垢剂,工业葡萄糖,硫酸铝,果壳活性炭,柱状活性炭,蜂窝活性炭,石英砂,锰砂-北京雁归来环保科技有限公司-以真诚为立足之本,以质量为生存之本,愿与海内外同仁共创双赢。雁归来人一路走来,气贯长虹,勇锐盖过怯弱,进取压倒苟安!我们紧扣时代脉搏,专注水处理、继往开来! | 吸附式干燥机|零气耗压缩热干燥机|无锡气净法工业技术有限公司【官网】 | 科衣洛定制衣柜,书柜,厨柜,衣帽间,电视柜,酒柜,餐厅柜,门厅柜,鞋柜——科衣洛全屋定制官网 | 上海视研装饰工程有限公司-上海标识公司,上海标识设计 | 植绒布工厂,植绒布现货批发-深圳市金峰盛植绒制品有限公司 | 石家庄启恒企业管理咨询有限公司| 孝感东方妇科医院_孝感妇科医院哪家好_孝感人流多少钱 | 中科先农农业(河北)智能设备有限责任公司 | 模具|晒纹-咬花-拉丝纹-立体纹-东莞市佳毅激光科技有限公司 | 天猫代运营_淘宝代运营_正规电商代运营公司_武汉火蝠电商 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 菏泽博捷电梯有限公司-菏泽博捷电梯有限公司 | 液压尾管悬挂器,机械式尾管悬挂器价格,石油套管扶正器厂家,连续油管悬挂器,高压双塞水泥头,免钻塞注水泥分级箍,单塞套管水泥头价格,弹性套管扶正器,铸铝钢性扶正器,钢性套管扶正器厂家 | 西安宣传片拍摄,陕西艺景网络科技有限公司资料备份,西安影视公司,视频拍摄制作,抖音视频制作,纪录片拍摄西安短视频摄影团队,西安抖音视频拍摄 | 无线|远传|刷卡|光电直读水表_插卡电表[计量准确] | 山东啤酒箱塑料提手_注塑产品加工_手提绳厂家-淄博浩晨包装制品有限公司 | 济南时代,济南时代试验机,试金老品牌-济南时代试验机技术有限公司 | 立式/卧式/潜水/液下/螺杆/耐磨/渣浆泵|泥浆泵|离心泵,厂家 - 河北聚盛泵业制造有限公司 | 小型静音无油空压机价格-医用无油制氧空气压缩机-浙江盛源水润滑空压机制造有限公司 | 萘系减水剂|缓凝|早强|聚羧酸|混凝土|石膏板|管桩减水剂厂家-潍坊英宏建材有限公司 | 天津翻译公司盖章|022-58385822| 翰文博译(天津)商务咨询有限公司 | 医用空气净化消毒机,医用床单位消毒机,无磁空气消毒机,紫外线空气消毒机厂家-南昌市扬帆环保设备有限公司 | 亚洲一区日韩一区欧美一区a,中文字幕乱妇无码AV在线,欧美日韩免费在线观看,国产精品一区二区三区免费,日韩精品免费一线在线观看,日韩一本在线,国产呦精品一区二区三区下载,国产日韩精品一区二区在线观看,欧美日韩高清一区二区三区,日韩在线免费观看视频,欧美日韩一区在线观看 | 激光焊接不锈钢翅片管,不锈钢翅片管,激光焊接复合翅片管,南通拓帆换热设备有限公司 | 汽车漆|汽车油漆|工业油漆涂料|汽车漆加盟-佛山市科涂涂料有限公司 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 有用的旅游攻略_格林旅行网 | 宣城眼科医院-全飞秒激光治近视-专注眼科二十二年 | 真空烘箱-高低温试验箱-防爆烘箱-防爆高低温试验箱-老化房-恒温恒湿箱-高低温试验箱-高低温冲击试验箱厂家—上海标承实验仪器有限公司 | 营销型网站建设-企业高端网站设计制作公司-16年建站品牌 | 微型压力传感器-工业压力放大器-压力传感器厂家-力准传感 | 青浦区摄像头安装/青浦区无线网络覆盖/青浦区网络调试公司/青浦区IT外包公司/金山区网络维护公司/金山区防火墙调试公司 | 专业提供医疗器械,医疗设备,进口国产医疗设备,医疗耗材采购,医疗设备厂家等医疗器械信息-上海聚慕医疗器械有限公司 | 网带式等温正火生产线_燃气式铝合金加热炉_燃气式烘干窑炉-湖州中科炉业科技有限公司 | 泰安德兴元机械设备有限公司|网站首页 |