本文章总结了如何手动、自动修改本地用户密码及远程机器的用户密码。对做自动化测试提供了自动修改用户密码的原理及方法。

修改本地用户密码:

1、交互配置本地用户:

以root用户:

passwd

Changing passWord for user dewang.

New UNIX passWord:

BAD PASSWord: it is too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

以非root用户修改自己的密码(注后面不能跟用户名,只有root用户才允许):

passwd

Changing password for user dewang.

Changing password for dewang

(current) UNIX password:

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

2、非交互配置本地用户:

echo | passwd --stdin

echo : | chpasswd

将:对先写到一文件passwd.tmp中,然后执行

chpasswd < passwd.tmp

3、自动脚本处理:

根据passwd命令修改用户密码,格式为:xxx.sh

#!/bin/sh

# \

exec expect -f "$0" ${1+"$@"}

if { $argc != 2 } {

puts "Usage: $argv0 "

exit 1

}

set password [lindex $argv 1]

spawn passwd [lindex $argv 0]

sleep 1

expect "assword:"

send "$password\r"

expect "assword:"

send "$password\r"

expect eof

说明:如果要通过shell直接调用expect相关命令,则开头中必须是如下格式,然后后面即可按照expect、TCL格式书写了。

#!/bin/sh

# \

exec expect -f "$0" ${1+"$@"}

根据echo | passwd --stdin 及 echo : | chpasswd来修改用户密码:

#!/bin/sh

if [ $# -ne 2 ] ; then

echo "Usage: `basename $0` "

exit 1

fi

#echo "$2" | passwd --stdin "$1"

echo "$1:$2" | chpasswd

if [ $? -eq 0 ] ; then

echo "change password for $1 success"

else

echo "change password for $1 failed"

fi

修改远程主机上用户密码:

1、交互配置远程用户:

echo | ssh -l root passwd --stdin

如:

echo "newpass" | ssh -l root 10.11.103.151 passwd --stdin dewang

root@10.11.103.151's password:

Changing password for user dewang.

passwd: all authentication tokens updated successfully.

echo : | ssh -l root chpasswd 2>&1

将:对先写到一文件passwd.tmp中,然后执行

chpasswd < passwd.tmp [作者未测试]

ssh -l root

.... 交互输入root密码

然后执行以上的所有可用方式均可

2、非交互配置远程用户:

则需要用到expect来进行处理,通过ssh登录到远程机器,然后结合上述配置方式,以完成自动修改用户密码。

#!/usr/bin/expect

#@brief to change user password by ssh remote machine

proc usage {funcname} {

puts "Usage: "

puts "    $funcname -user "

puts "    $funcname -root "

}

# check param

if { $argc != 5 } {

usage $argv0

exit 1

}

# get param

set host [lindex $argv 0]

set username [lindex $argv 1]

set newpasswd [lindex $argv 2]

set loginname "root"

if { [string compare [lindex $argv 3] "-user"] == 0 } {

set loginname $username

}

set passwd [lindex $argv 4]

puts "$host $username $newpasswd $loginname $passwd"

spawn ssh -l $loginname $host

expect {

"*(yes/no)*" { send "yes\r"; set sshkey 1 }

"*assword:*" { send "$passwd\r"; set sshkey 0 }

if sshkey == 1 {

expect "*password:*"

send "$passwd\r"

}

}

expect "*#"

if { [string compare $loginname "root"] == 0 } {

#send "echo \"$username:$newpasswd\" | chpasswd\r"

send "echo \"$newpasswd\" | passwd --stdin \"$username\"\r"

} else {

send "passwd\r"

expect {

"*current*assword:" {send "$passwd\r"}

"passwd: Authentication token manipulation error" {exit}

}

expect "New*assword:"

send "$newpasswd\r"

expect "Retype*assword:"

send "$newpasswd\r"

}

expect "*#"

send "exit\r"

#interact 是否将交互权接过来,如果接过来,则用户这时可进行交互操作

linux 修改超级权限密码,linux 修改用户密码相关推荐

  1. linux登录超级权限管理,Linux操作系统中超级权限控制的应用(3)

    实例四: 比如我们想用beinan普通用户通过more /etc/shadow文件的内容时,可能会出现下面的情况: [beinan@localhost ~]$ more /etc/shadow /et ...

  2. linux中文件权限 组,linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [] -R 或者--recursive 递归处理,表示将指定目录下的所有文件 ...

  3. 教你如何修改铁威马NAS的用户密码

    TOS (TerraMaster Operating System) 是专门为 TNAS 设备设计的基于网页界面的操作系统.那么如何修改铁威马NAS的用户密码呢? 第一种 1.登录TOS系统: 2.右 ...

  4. 【转】SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  5. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    转:http://www.cnblogs.com/nbpowerboy/p/3355943.html 前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真 ...

  6. 服务器密码修改db2数据库密码错误,DB2用户密码的修改鱼数据库备份恢复的相关问题...

    此文章主要向大家讲述的是DB2用户密码的修改以及数据库备份恢复的相关问题的描述,如果你对DB2用户密码的修改以及数据库备份恢复德相关问题的描述有兴趣的话,你就可以对以下的文章点击观看了. 前天开始安装 ...

  7. linux指令scp需要密码吗,linux下 scp命令不需要输入用户密码

    linux下 scp命令不需要输入用户密码 在两台机器的两个用户之间建立安全的信任关系后,可实现执行scp命令时不需要输入用户密码. 1. 在机器Client上root用户执行ssh-keygen命令 ...

  8. linux文件的权限模式,Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  9. Linux中文件权限查看和修改

    权限定义 linux文件权限分为:r读权限(4).w写权限(2).x执行权限(1) linux权限对象分为:拥有者.组用户.其他用户 权限修改: chown user:group /usr/local ...

最新文章

  1. 【黑金视频连载】FPGA NIOSII视频教程(12)--时间戳定时器实验
  2. opencv对应python版本_【求问各位大佬python3.6怎么使用opencv,用哪个版本】python3 opencv...
  3. UIControl-IOS开发
  4. 前端开发 样式表的建立和优先级 0229
  5. Java 猜字谜游戏
  6. 【SSH进阶】No result defined for action **的解决方案
  7. ROS的学习(十二)用C++写一个简单的发布者
  8. 亚信安全特邀出席2016首届国际反病毒大会
  9. matlab 流星雨,dijkstra算法及其matlab实现
  10. 很多的计算机英语词汇是通过,计算机英语词汇隐喻分析
  11. 物 理 学 简 介(三)
  12. 一个能够让你快速从html结构生成css结构的vscode插件
  13. 移动开发利器-Bmob后端云使用体验
  14. 即将奔三的90后,你们有多少存款
  15. python中让输出不换行
  16. 冰河的高并发电子书开源啦(文末免费领取)!!
  17. 李阳疯狂英语-228句口语要素
  18. 借助花生壳使用公网远程连接Jetson nano
  19. JVM成神之路-JVM引用模型
  20. linux文件中插入多行技巧

热门文章

  1. 2020-11-5(安卓)
  2. 如何跟踪log4j漏洞原理及发现绕WAF的tips
  3. 栈的应用就进匹配_笔记
  4. 【生活】 戴尔XPS 插上耳机之后,说话没声音,麦克风失效 window10 系统
  5. 2021夏季每日一题 【week2 未完结】
  6. 项目: 用C语言写一个图形化的音乐播放器 【C++ / C】
  7. jQuery获取元素内容
  8. 为什么牛逼的程序员都不用 “ ! = null 做判空?
  9. 算法每日学打卡:java语言基础题目打卡(16-18)
  10. 【struts2+hibernate+spring项目实战】统一异常处理(ssh)