注册

修改密码的安全方法:避免交互的多种实现方式

对系统定期更改密码是一个很重要的安全常识,一般,我们更改用户密码都使用passwduser这样的命令来更改密码,然而这样会步入交互模式,虽然使用脚本也不能很便捷的批量更改,除非使用expect这样的软件来实现,莫非更改一下密码还须要单独安装一个软件包吗?不,我们也许还有其他好多方式可以让我们避免交互的,下边具体写一下具体的实现方法:

第一种:

echo"123456"|passwd--stdinroot

优点:便捷快捷

缺点:假如你输入的指令能被他人通过history或则其他方法捕获,这么这样的方法是很不安全的redflag linux,更重要的是假如密码同时富含单冒号和双冒号,这么则未能通过这些方式更改。

说明:

批量更改linux密码passwd--stdinuser从标准输入中读取密码,所以用户可以在脚本中使用如echoNewPasswd|passwd--stdinusername这些方法来批量修改密码但在其它的一些发行版(如Debian/Suse)所提供的passwd并不支持--stdin这个参数

第二种:

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

catchpass.txt

root:123456

zhaohang:123456

b.使用如下命令对用户口令进行更改:

chpasswd

c.可以使用123456来登入系统,密码更改完毕.

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

缺点:明文密码写在文件里一直变得不够安全,并且防止了第一种更改形式不能有特殊字符串密码的情况.

第三种:

a.用opensslpasswd-1来世成用户口令,连同用户名一起写入文件.

catchpass.txt

root:$1$ri2hceVU$WIf.firUBn97JKswK9ExO0

zhaohang:$1$i/Gou7.v$Bh2K6sXmxV6/UCxJz8N7b.

b.使用如下命令对用户口令进行更改:

chpasswd-e

c.可以使用123456来登入系统,密码更改完毕.

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

缺点:和前面两种相比大大提高了安全性

附加介绍:

opensslpasswd-1命令可以输出shadow上面的密码,把这个命令生成的秘串修改为你shadow里的密码,这么上次你登入系统就可以用你的生成密码的口令来登陆了,使用这个命令,虽然口令一样,多次执行生成的密码串也不一样。那种hash值对应的密码是完全随机的基于64位字符编码的28位长,因而要破解它是十分困难的,只要不用这些密码早已公布下来的hash值创建帐号,虽然这种密码文件被公布也还是比较安全的。使用旧的unix哈希可以去除-1参数。

[root@WEB01~]#opensslpasswd-1

Password:123456

Verifying-Password:123456

$1$ri2hceVU$WIf.firUBn97JKswK9ExO0

也可以直接使用如下命令来直接生成:

[root@WEB01~]#opensslpasswd-1123456

[root@WEB01~]#opensslpasswd-1-salt"yoctor"123456

里面命令中的salt自己随意输入些东西

由于设置密码的时侯密码密文是MD5加密的linux 批量修改扩展名,在形成哈希值的时侯系统回在密文中加如盐继而使密文未能反向破译。

passwd加密的时侯系统加的salt是时间

在RedhatRedflagcentosfclinux系统上面脚本的启动

先后:

第一步:通过/boot/vm进行启动vmlinuz

第二步:init/etc/inittab

第三步:启动相应的脚本linux 批量修改扩展名,而且打开终端

rc.sysinit

rc.d(上面的脚本)

rc.local

第四步:启动login登陆界面login

第五步:在用户登入的时侯执行sh脚本的次序:每次登入的时侯就会完全执行的

/etc/profile.d/file

/etc/profile

/etc/bashrc

/root/.bashrc

/root/.bash_profile

//

由于嵌入式系统中没有chpasswd,useradd命令,而第一种方法个别版本不支持--stdin,所以可用以下方法来代替

/etc/profile中添加如下linux vps,可以实现开机后步入普通用户civintec,而不是默认登录root

passwdroot

以上就是修改密码的安全方法:避免交互的多种实现方式的详细内容,更多请关注CTO智库其它相关文章!