对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用passwd user这样的命名来修改密码,但是这样会进入交互模式,即使使用脚本也不能很方便的批量修改,除非使用expect这样的软件来实现,难道修改一下密码还需要单独安装一个软件包吗?不,我们其实还有其他很多方法可以让我们避免交互的,下面具体写一下具体的实现方式:

一、

echo "123456" | passwd --stdin root

优点:方便快捷

缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。

二、

a、首先将用户名密码一起写入一个临时文件。

cat chpass.txt

root:123456

zhaohang:123456

b、使用如下命令对用户口令进行修改:

chpasswd < chpass.txt

c、可以使用123456来登录系统,密码修改完毕。

优点:可以很快速方便的修改多个用户密码

缺点:明文密码写在文件里仍然显得不够安全,但是避免了第一种修改方法不能有特殊字符串密码的情况。

三、

a、用openssl passwd -1来生成用户口令,连同用户名一起写入文件。

cat chpass.txt

root:$1$ri2hceVU$WIf.firUBn97JKswK9Ex00

b、使用如下命令对用户口令进行修改:

chpasswd -e < chpass.txt

c、可以使用123456来登录系统,密码修改完毕。

优点:可以很快方便的修改多个用户密码

缺点:和上面两种相比大大增强了安全性

附加介绍:

openssl passwd -1命令可以输出shadow里面的密码,把这个命令生成的秘串更改为你shadow里的密码,那么下次你登录系统就可以用你的生成密码的口令来登录了,使用这个命令,即使口令一样,多次执行生成的密码串也不一样。那个hash值对应的密码是完全随机的基于64位字符编码的28位长,因此要破解它是非常困难的,只要不用那些密码已经公布出来的hash值创建账号,即使这些密码文件被公布也还是比较安全的。

Linux批量修改用户密码的更多相关文章

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

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

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

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

  3. ansible批量修改用户密码

    实现批量修改目标主机多个用户密码: --- - hosts: testchanange passwd gather_facts: false tasks: - name: change you pas ...

  4. linux系统修改用户密码报错

    版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址:https://www.cnblogs.com/wannengachao/p/12069113.html 1.设置新 ...

  5. linux批量修改root密码脚本

    转至:https://blog.csdn.net/onionm/article/details/100514892?utm_medium=distribute.pc_relevant_download ...

  6. linux批量添加用户和批量修改密码

    一.批量创建用户通过命令newusers可以实现批量的创建用户.这个命令的用法为 newusers file.txt(一个文本文件)文本文件内存放需要批量添加的用户信息但是对格式有要求格式:pw_na ...

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

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

  8. linux 批量创建用户

    user 模块添加用户 python -c 'from passlib.hash import sha512_crypt; import getpass; print (sha512_crypt.en ...

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

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

随机推荐

  1. shell中引用其他脚本的方法

    在Shell中引用其他脚本的方法是source   filename.sh 或    .    filename.sh 注意:      .   和   filename.sh之间必须有空格

  2. WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform

    参看:http://www.secdoctor.com/html/yyjs/31101.html

  3. 关键字 self

    self 总是指向调用方法的对象. self总是代表当前类的对象.当它出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的,它所代表的是当前类的实例对象: 当这个方法被调用时,它所代表的 ...

  4. mysql:批量更新

    (优化前)一般使用的批量更新的方法: foreach ($display_order as $id => $ordinal) {     $sql = "UPDATE categori ...

  5. PostgreSQL Replication之第十一章 使用Skytools(3)

    11.3 管理 pgq-queues Skytools 的一个核心组件是pgq.它提供了一个通用排队接口,它可以让您把消息从一个消息提供者传送到一个任意数目的接收者. 现在的问题是:一般来说,一个队列 ...

  6. Lintcode: Previous Permuation

    Given a list of integers, which denote a permutation. Find the previous permutation in ascending ord ...

  7. For循环输出九九乘法表

    题:使用For循环输出九九乘法表 解析: 1*1=1 1*2=2  2*2=4 1*3=3  2*3=6  3*3=9 .... 1*9=9  ........ .....9*9=81 可以看做j*i ...

  8. c# 隐藏 控制台应用程序

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. Java基础(3):求任意数字的长度的三种方法

    题目:统计任意一个数字的长度 方法一:先把数字转换为字符换,再直接用现成的函数统计长度即可 方法二:用API public class Test { final static int[] sizeTa ...

  10. 全局函数VS成员函数

    #include <iostream> using namespace std; class Test { public: Test(int a, int b) { this->a ...