首页 > 其他分享 >密码管理

密码管理

时间:2022-11-16 15:25:01浏览次数:41  
标签:pFd nBuf 管理 passwd 密码 include chpasswd

 1. 密码管理相关指令

1. 更新用户密码: 
    sudo passwd [用户名]

2.查看当前用户密码状态:
    passwd -S
   /*
      用户名| 密码状态      |密码最后修改时间|密码最小     |密码最大    |警告时间   |失效时间        |
           | P:只有一个密码 |             | 生存期(天) |生存期(天) |         |(-1表示不失效) |
           | NP:没有密码   |             |            |           |          |
   */   
      imx6ul     P          11/22/2018      0            99999         7           -1

3.删除用户密码
    sudo passwd -d [用户名]

4.批量更新密码
  (1)先创建用户密码对应文件,格式为username:password,如abc:abc123,不能有空行,保存成文本文件user.txt。
  (2)然后执行chpasswd命令
            chpasswd < user.txt

2. 更新用户密码函数

 1 #include <stdio.h>   //popen、pclose、
 2 #include <stdlib.h>  //system
 3 #include <string.h>  //strerror
 4 #include <errno.h>   //errno
 5 
 6 void UpdatePasswd()
 7 {
 8     char nBuf[128] = {0};
 9     FILE *pFd = NULL;
10     pFd = popen("passwd -S","r");    //查看当前用户密码状态
11     if(pFd != NULL)
12     {
13         if(fgets(nBuf,sizeof(nBuf),pFd) > 0)  //得到命令的执行结果
14         {
15             if(strstr(nBuf,"NP") > 0)  //NP:没有设置密码,strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串
16             {
17                 LOG_FLOW("PASSWD Not Set,Start Set PASSWD\n"); 
18                 system("echo 'imx6ul:123456'|chpasswd");  //chpasswd命令来批量修改密码
19             }
20         }
21         else
22         {
23             LOG_FLOW("Passwd already set."); 
24         }
25         pclose(pFd);
26     }
27     else
28     {
29         LOG_ERROR("Check passwd status error with %s.",strerror(errno)); 
30     } 
31 }

 

标签:pFd,nBuf,管理,passwd,密码,include,chpasswd
From: https://www.cnblogs.com/dkhlaojogo/p/16895948.html

相关文章

  • 科普系列:AUTOSAR与OSEK网络管理比较(下)
    前言  在上篇中我们分别在状态机和报文格式方面对OSEK和AUTOSAR网络管理进行了简单介绍,感兴趣的小伙伴请移步至文章《科普系列:AUTOSAR与OSEK网络管理比较(上)》。  ......
  • C/C++PM2.5实时信息管理系统
    C/C++PM2.5实时信息管理系统该系统有两类用户,普通用户和管理员(1名)。其中,普通用户功能包括:1、按城市名称查询其对应的空气质量指数的所有相关信息,包括城市名称、AQI、......
  • 直播app开发搭建,centos7修改密码
    直播app开发搭建,centos7修改密码修改centos7密码1.登录到需要修改密码的服务器。2.输入passwd命令3.输入两遍密码,即可完成密码修改  [root@localhost~]#passw......
  • Elastic图形化管理工具-cerebro
    cerebro没有Kibana那么强大,但是部署起来极其简单且页面极其简洁。代码在GitHub存管:GitHub传统部署:GitHub容器部署:Docker部署:dockerrun-itd--namecerebro-p9......
  • Word16 供应链的管理论文office真题
    1.课程的讲解之前,先来对题目进行分析,首先需要在考生文件夹下,将Wrod素材.docx文件另存为Word.docx,后续操作均基于此文件,否则不得分。  2.这一步非常的简单,打开下载素材......
  • pytest文档81 - 如何管理Captured logging日志
    前言pytest自动捕获级别为WARNING或以上的日志消息,并以与捕获的stdout和stderr相同的方式在每个失败测试的各自部分中显示它们。日志显示当输入pytest命令,不带任......
  • mysql忘记密码、登陆报错和启动报错问题
    1.mysql登录密码忘记,其实解决办法很简单,只需要在mysql的主配置文件my.cnf里添加一行“跳过授权表”的参数选择即可!在my.cnf中添加下面一行:[root@mysql_server~]#vim/e......
  • 7.jenkins调用maven工具管理java代码实现滚动发布
    1.配置多jdk环境2.配置多maven环境3.配置maven项目3.1配置部署主机[root@jenkinswar_update]#cathosts_test[webservice]192.168.1.191[root@jenkinswar_......
  • WindowsAPI-C#版_设备管理常用API
    #regionWindows设备管理-程序以管理员权限运行///<summary>///注册设备或者设备类型,在指定的窗口返回相关的信息///</summary>//......
  • Docker图形化管理工具-Protainer
    目录1、简介2、部署2.1单节点部署:2.2compose部署:3、登入页面1、简介Portainer是一款基于GO语言开发的轻量级容器图形化管理工具,图形化管理容器、镜像、网络、数据卷、大......