对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用 passwd user 这样的命令来修改密码,但是这样会进入交互模式,即使使用脚本也不能很方便的批量修改,除非使用expect 这样的软件来实现,难道修改一下密码还需要单独安装一个软件包吗? 不,我们其实还有其他很多方法可以让我们避开交互的,下面具体写一下具体的实现方式:
第一种:
echo "123456" | passwd --stdin root
优点:方便快捷
缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全的,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。
说明:
批量修改linux密码 passwd --stdin user 从标准输入中读取密码,所以用户可以在脚本中使用如 echo NewPasswd | passwd --stdin username 这种方式来批量更改密码 但在其它的一些发行版(如Debian/Suse)所提供的passwd并不支持--stdin这个参数
第二种:
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.firUBn97JKswK9ExO0
zhaohang:$1$i/Gou7.v$Bh2K6sXmxV6/UCxJz8N7b.
b. 使用如下命令对用户口令进行修改:
chpasswd -e < chpass.txt
c. 可以使用 123456 来登录系统,密码修改完毕.
优点:可以很快速方便的修改多个用户密码
缺点:和上面两种相比大大增强了安全性
附加介绍:
openssl passwd -1 命令可以输出shadow里面的密码,把这个命令生成的秘串更改为你shadow里的密码,那么下次你登录系统就可以用你的生成密码的口令来登录了,使用这个命令,即使口令一样,多次执行生成的密码串也不一样。那个hash值对应的密码是完全随机的基于64位字符编码的28位长,因此要破解它是非常困难的,只要不用那些密码已经公布出来的hash值创建账号,即使这些密码文件被公布也还是比较安全的。使用旧的unix哈希可以去掉 -1 参数。
[root@WEB01 ~]# openssl passwd -1
Password: 123456
Verifying - Password: 123456
$1$ri2hceVU$WIf.firUBn97JKswK9ExO0
也可以直接使用如下命令来直接生成:
[root@WEB01 ~]# openssl passwd -1 123456
[root@WEB01 ~]# openssl passwd -1 -salt "yoctor" 123456
上面命令中的 salt 自己随便输入些东西
因为设置密码的时候密码密文是MD5加密的,在产生哈希值的时候系统回在密文中加如盐从而使密文无法反向破译。
passwd加密的时候系统加的salt是 时间
本文来自: http://hi.baidu.com/only8731/item/21513035e1428124b3c0c576
分享到:
相关推荐
Linux系统批量修改用户密码方法。 以一种简单方法可以让我们避开密码修改交互的方式,本文描述具体的实现方式。
本工具基于Python编写,可以用于批量修改linux主机密码,支持统一密码和结合IP地址的自动生成密码的方式,可自定义被修改用户的用户名及密码,本工具不支持已到期账户的密码(交互模式)修改,但是非Root用户密码...
远程批量修改linux服务器密码的脚本归类.pdf
批量修改linux密码的脚本,拿来直接用,在IP列表里写上你想修改的IP,后面加上密码,回车就改好了。
需要对服务器进行批量的修改root密码,还要在每台服务器新建一个用户,如果一个一个登到的服务器上进行修改的话,估计一个下午又没有了,首先想到的是我最喜欢的php,其中有个ssh2 模块,不得不承认用php 来处理这样...
[一般都是切换到root进行密码修改,如果普通用户修改自己的密码,要输入原密码,然后新密码要满足复杂度才OK]; 3. passwd username 使用passwd username 修改 username 的密码; 使用该命令会有提示,即进入了交互...
NULL 博文链接:https://7shao.iteye.com/blog/1570042
本文给大家介绍Linux下批量修改服务器用户密码方法步骤,批量修改服务器用户密码,由于机器数量比较多,因此采用批量修改密码的方式进行处理比较快,具体操作步骤大家通过本文学习吧
大多时候,作为Linux系统运维人员,需要编写shell脚本去批量处理一些...下面是一个批量登录服务器修改密码的实战例子: #!/usr/bin/env bash while read line do ip=`echo $line | awk '{print $1}'` password=`ec
主要介绍了python实现linux服务器批量修改密码并生成execl示例,需要的朋友可以参考下
教程名称:Linux下的自动化和批量管理教程集锦课程目录:【】linux下kickstart自动化部署安装【】Linux运维...远程批量修改linux服务器密码的脚本【IT教程 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
文章目录说明先查询是否有这账号修改为创建用户执行创建用户脚本创建(修改)密码方法一方法二方式三 说明 如果你质疑自己,不确定命令是否正确或者不确定脚本是否能正常执行, 你可以先测试,测试方法就是 在命令行...
批量修改远程linux服务器密码.docx
批量执行多台服务器命令,批量修改密码,批量执行服务器脚本,批量上传文件,解放你的双手,五分钟批量执行上千台服务器命令。 Unix 实验室服务器批量管理监控系统,简称 UnixShellManager UnixShellManager 分...
- useradd.sh 是创建用户组、批量添加用户并设置密码、创建家目录更改用户组,完成之后并统计执行当前脚本共创建了多少个用户。(用户名脚本、用户组、密码可根据自己的所需来自行修改),配合username.txt一起使用...
hpasswd 可在批处理文件中批量更改Linux用户的密码。 用法: chpasswd [options] option主要为一些密码加密选项 -c, –crypt-method Use the specified method to encrypt the passwords. The available methods ...
批量执行多台服务器命令,批量修改密码,批量执行服务器脚本,批量上传文件,解放你的双手,五分钟批量执行上千台服务器命令。 Unix 实验室服务器批量管理监控系统,简称 UnixShellManager UnixShellManager 分...
最近对linux批量执行的脚本很感兴趣,在网上到处找有关expect批量执行脚本,今天就给大家共享一个批量修改密码的脚本. 脚本内容: 代码如下: #!/usr/bin/expect if { $argc<2> <cmd> \n” exit } # 机器列表数据...