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. C#与Python交互方式

    前言: 在平时工作中,需求有多种实现方式:根据不同的需求可以采用不同的编程语言来实现.发挥各种语言的强项 如:Python的强项是:数据分析.人工智能等 .NET 开发桌面程序界面比Python更简单 ...

  2. Spring Boot 整合Junit和redis

    14. Spring Boot整合-Junit 目标:在Spring Boot项目中使用Junit进行单元测试UserService的方法 分析: 添加启动器依赖spring-boot-starter ...

  3. 2020.1 IDEA 激活

    1 下载安装 平台windows,官网这里. 选位置之后: 选项分别是创建32/64位的快捷方式,把运行目录添加到PATH环境变量,添加右键菜单"打开文件夹作为工程",添加java ...

  4. kubectl create / replace 与kubectl apply 的区别

    kubectl create / replace 以ngnix 的 nginx.yaml为例: apiVersion: apps/v1 kind: Deployment metadata: name: ...

  5. shell脚本 4 函数与正则

    shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式 func() {   #指定函数名 ...

  6. 超详细网站博客域名和二级域名、子域名升级HTTPS免费申请SSL证书配置nginx指南

    随着互联网的飞速发展,我们的工作生活已经离不开互联网,HTTP虽然使用极为广泛, 但是存在不小的安全缺陷, 主要是其数据的明文传送和消息完整性检测的缺乏, 而这两点恰好是网络支付,网络交易等网站应用中 ...

  7. Django 模型(Model)

    1. 模型简介 ORM 简介 使用 Mysql 数据库的环境配置 2. 定义模型 1)定义属性 2)字段类型 3)字段选项 4)关系 5)元选项 6)范例 3. 模型成员&管理器 1)类属性 ...

  8. hdu 2058 枚举区间和个数

    题意:       给你两个数n,m,意思是有一个序列长度n,他是1 2 3 4 ...n,然后让你输出所有连续和等于m的范围. 思路:       是个小水题,随便写几个数字就能发现规律了,我们可以 ...

  9. hdu1530 最大团简单题目

    题意:       给你一个无向图,让你找到这个图里面的最大团是多少. 思路:       最大图案是NP问题,直接暴力搜索,如果当前的这个点可以加入当前最大团,那么就选择加入或者舍去,如果不能加入, ...

  10. Python中根据库包名学习使用该库包

    目录 Python库包模块 import 语句 from-import 语句 搜索路径 PYTHONPATH 变量 命名空间和作用域 查看模块中所有变量和函数,以及查看具体函数的用法 globals( ...