7.6 passwd:修改用户密码

    passwd命令可以修改用户密码及密码过期时间等内容,是工作中很常用的命令。普通用户和超级用户都可以运行passwd命令,但普通用户只能更改自身的用户密码,超级用户root则可以设置或修改所有用户的密码。
 
-k        为密码已经过期的用户更新有效期
-l        锁定用户,被锁定的用户将不能登录。仅root用户有权使用该选项
-stdin    从标准输入读取密码字符串深
-u        解除对用户的锁定。仅root用户有权使用该选项
-d        删除用户的密码,使密码为空。仅root用户有权使用该选项
-e        使用户密码立即过期,将在用户下次登录时强制要求用户修改密码。仅root用户有权使用该选项
-n        设置修改密码的最短天数。仅root用户有权使用该选项
-x        设置修改密码的最长天数。仅root用户有权使用该选项
-w        设置用户在密码过期前收到警告信息的天数。仅root用户有权使用该选项
-i        设置密码过期多少天后禁用账户。仅root用户有权使用该选项
-S        显示用户密码相关的简单描述。仅root用户有权使用该选项
 
除了上述说明,还要强调以下两点。
    root用户可以修改任何用户的密码,普通用户只能修改自身的密码。
    root用户修改密码时,如果不符合系统密码规则,则给出警告信息,但密码设置仍然生效。普通用户修改密码时,如果使用弱密码,则给出告警信息,且修改无效。
 
修改用户密码的例子。
[root@cs6 ~]# passwd
Changing password for user root.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@cs6 ~]# passwd lewen
Changing password for user lewen.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@cs6 ~]# su lewen
[lewen@cs6 root]$ passwd
Changing password for user lewen.
Changing password for lewen.
(current) UNIX password:
New password:
BAD PASSWORD: it is too simplistic/systematic #<==如果密码太短则不允许设置(root用户修改密码只是警告)
New password:
BAD PASSWORD: it is too simplistic/systematic
New password:
 
显示账号密码信息的例子。
[root@cs6 ~]# passwd -S root
root PS 2019-05-11 0 99999 7 -1 (Password set, SHA512 crypt.)
 
一条命令设置密码(生产使用技巧)。
[root@cs6 ~]# echo '123456'|passwd --stdin lewen
Changing password for user lewen.
passwd: all authentication tokens updated successfully.
 
要求lewen用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知用户,过期后30天后禁止用户登录。
[root@cs6 ~]# passwd -n 7 -x 60 -w 10 -i 30 lewen
Adjusting aging data for user lewen.
passwd: Success
[root@cs6 ~]# passwd -S lewen
lewen PS 2019-05-11 7 60 10 30 (Password set, SHA512 crypt.)
[root@cs6 ~]# chage -l lewen
Last password change : May 11, 2019
Password expires : Jul 10, 2019
Password inactive : Aug 09, 2019
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 10

生产案例:批量创建10个用户stu01-stu10,并且设置8位随机密码

    范例7-15:批量创建10个用户stu01-stu10,并且设置8位随机密码,要求不能使用Shell的循环(例如:for、while等),只能用Linux命令及管道来实现。
 
第一步:生成符合题意的10个用户名。
[root@cs6 ~]# echo stu{01..10}
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
第二步:使用tr命令将上述10个用户名竖行显示。
[root@cs6 ~]# echo stu{01..10}|tr " " "\n"            #或者用xargs -n 1
stu01
stu02
stu03
stu04
stu05
stu06
stu07
stu08
stu09
stu10
第三步:在每一行的前面加上useradd命令,即可拼出添加用户的所有命令。
[root@cs6 ~]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1#g'
useradd stu01
useradd stu02
useradd stu03
useradd stu04
useradd stu05
useradd stu06
useradd stu07
useradd stu08
useradd stu09
useradd stu10
上面三步是完整的命令,第四步开始实际上是不同的命令,因此用分号分隔。
第四步:定义8位随机数变量。
[root@cs6 ~]# pass=$((RANDOM+88888888))
[root@cs6 ~]# echo $pass
88905344
第五步:以第一二步作为结果使用sed -r 's#(.*)#最终命令#g'。

[root@cs6 ~]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin \1;echo -e "\1 `echo "$pass"`">>/tmp/lewen.log#g'
useradd stu01;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu01;echo -e "stu01 `echo "$pass"`">>/tmp/lewen.log
useradd stu02;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu02;echo -e "stu02 `echo "$pass"`">>/tmp/lewen.log
useradd stu03;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu03;echo -e "stu03 `echo "$pass"`">>/tmp/lewen.log
useradd stu04;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu04;echo -e "stu04 `echo "$pass"`">>/tmp/lewen.log
useradd stu05;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu05;echo -e "stu05 `echo "$pass"`">>/tmp/lewen.log
useradd stu06;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu06;echo -e "stu06 `echo "$pass"`">>/tmp/lewen.log
useradd stu07;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu07;echo -e "stu07 `echo "$pass"`">>/tmp/lewen.log
useradd stu08;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu08;echo -e "stu08 `echo "$pass"`">>/tmp/lewen.log
useradd stu09;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu09;echo -e "stu09 `echo "$pass"`">>/tmp/lewen.log
useradd stu10;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin stu10;echo -e "stu10 `echo "$pass"`">>/tmp/lewen.log
[root@cs6 ~]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin \1;echo -e "\1 `echo "$pass"`">>/tmp/lewen.log#g'|bash
拼接后的命令拆解解析
 
useradd stu10;                        添加用户
pass=$((RANDOM+10000000)); 密码随机数定义
echo "$pass"|passwd --stdin stul0; 非交互式设置密码
echo -e "stu10 `echo "$pass"`" >>/tmp/lewen.log 将密码生成到文件里并记录
第六步:将得出的10条语句通过管道交给bash命令来执行。
[root@cs6 ~]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1;pass=$((RANDOM+88888888));echo "$pass"|passwd --stdin \1;echo -e "\1 `echo "$pass"`">>/tmp/lewen.log#g'|bash
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
Changing password for user stu01.
passwd: all authentication tokens updated successfully.
......
 
 
 
 
 
 
 
 
 

7.6 passwd:修改用户密码的更多相关文章

  1. passwd 修改用户密码 / chpasswd 批量更新用户密码

    passwd 修改用户密码 1.命令功能 passwd 修改用户密码及密码过期时间等信息. 2.语法格式 passwd  option  username passwd   选项   用户名 选项说明 ...

  2. linux下passwd命令设置修改用户密码

    1.passwd 简单说明: 我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码:passwd命令的用法也很多,我们只选如下的几个参数加以说明:想了解更多,请参考man passwd或p ...

  3. 添加用户useradd,给用户设置修改密码passwd,修改用户信息usermod,修改用户密码状态chage,删除用户userdel,查询用户及组id,切换用户su,查看当前环境变量env

    useradd 用户名 passwd 用户名,给指定用户设密码 passwd给当前用户设密码 添加一个用户系统会自动在以下文件或目录创建对应用户信息: [root@localhost ~]# grep ...

  4. Linux chpasswd (批量或单一修改用户密码)和passwd(直接修改用户密码)

    Linux命令:chpasswd 批量或者单一修改用户密码 语法: 1:# echo 用户名:密码 | chpasswd 2:# chpasswd < doiido.txt 实例 1.直接修改d ...

  5. Linux命令----su(切换用户)以及passwd(修改用户密码)

    一.su命令登录root 用户在使用telnet命令可以远程登录,但不可以登录root,这样就需要使用su命令来登录root用户. telnet登录(不能登录root)--- 1.启动终端 输入 te ...

  6. (转)linux passwd批量修改用户密码

    linux passwd批量修改用户密码  原文:http://blog.csdn.net/xuwuhao/article/details/46618913 对系统定期修改密码是一个很重要的安全常识, ...

  7. 【转】linux下passwd命令设置修改用户密码

    1.passwd 简单说明: 我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码:passwd命令的用法也很多,我们只选如下的几个参数加以说明:想了解更多,请参考man passwd或p ...

  8. linux passwd批量修改用户密码

    linux passwd批量修改用户密码 对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用 passwd user 这样的命令来修改密码,但是这样会进入交互模式,即使使用脚本也不 ...

  9. chpasswd-批量修改用户密码

    批量修改用户密码 工作原理: 从系统的标准输入读入用户的名称和口令,并利用这些信息来更新系统上已存在的用户的口令 语法: :# echo 用户名:密码 | chpasswd :# chpasswd & ...

随机推荐

  1. ClickHouse源码笔记5:聚合函数的源码再梳理

    笔者在源码笔记1之中分析过ClickHouse的聚合函数的实现,但是对于各个接口函数的实际如何共同工作的源码,回头看并没有那么明晰,主要原因是没有结合Aggregator的类来一起分析聚合函数的是如果 ...

  2. Spring Boot demo系列(十):Redis缓存

    1 概述 本文演示了如何在Spring Boot中将Redis作为缓存使用,具体的内容包括: 环境搭建 项目搭建 测试 2 环境 Redis MySQL MyBatis Plus 3 Redis安装 ...

  3. 解决CentOS虚拟机无法显示本地IP问题

    1 问题描述 CentOS虚拟机无法显示本地ip,如图: 2 尝试过的方法 参考过此处的解决方法,把网卡配置中的ONBOOT修改为YES: 但是原来的网卡配置也是YES,所以修改的方法没有用,尝试了一 ...

  4. Redhat 安装gitlab

    以下为8月23日左右记录的,没有发布.今日整理大概记录下. 安装依赖包 yum install -y curl policycoreutils-python openssh-server openss ...

  5. 我自横刀向天笑,手写Spring IOC容器,快来Look Look!

    目录 IOC分析 IOC是什么 IOC能够带来什么好处 IOC容器是做什么工作的 IOC容器是否是工厂模式的实例 IOC设计实现 设计IOC需要什么 定义接口 一:Bean工厂接口 二:Bean定义的 ...

  6. Web操作摄像头、高拍仪、指纹仪等设备的功能扩展方案

    摘要:信息系统开发中难免会有要操作摄像头.高拍仪.指纹仪等硬件外设,异或诸如获取机器签名.硬件授权保护(加密锁)检测等情况.受限于Web本身运行机制,就不得不使用Active.浏览器插件进行能力扩展了 ...

  7. CloudIDE:为开发者写代码开启“加速”模式

    摘要:华为云CloudIDE,以软件基础技术结合新时代业务场景,给开发者提供更高效.优质的开发体验,帮助开发者实现业务创新新动力,以硬核技术重塑云原生开发生产力. 本文分享自华为云社区<华为云C ...

  8. 关于Spring Data JPA 多表查询 返回自定义Vo的问题记录

    这两天开了一个新项目,使用SpringBoot+SpringData,  刚做了一个小功能,都是一张表的操作没什么问题,今天设计到了两张表联查,两张表各取了几个字段,组合成了一个vo, 当我用原生sq ...

  9. 11.PHP与MySQL

    PHP与MySQL 首先是PHPStorm设置创建SQL的教程,找到了一个写的不错的,在这里:http://blog.csdn.net/knight_quan/article/details/5198 ...

  10. Intel汇编语言程序设计学习-第一章 基本概念

    第一章基本概念 1.1  简单介绍 本书着重讲述MS-Windows平台上IA-32(Intel Architecture 32bit,英特尔32位体系架构)兼容微处理器的汇编语言程序设计,可以使用I ...