[转] 关于linux下通过shell命令(自动)修改用户密码
关于linux下通过shell命令(自动)修改用户密码
2012-04-23 18:47:39
分类:
原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer
修改本地用户密码:
1、交互配置本地用户:
以root用户:
| passwd <username> 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 <newpasswd> | passwd --stdin <username> |
或
| echo <username>:<passwd> | chpasswd |
或
将<username>:<passwd>对先写到一文件passwd.tmp中,然后执行
chpasswd < passwd.tmp
3、自动脚本处理:
根据passwd命令修改用户密码,格式为:xxx.sh <username> <passwd>
| #!/bin/sh # \ exec expect -f "$0" ${1+"$@"} if { $argc != 2 } { puts "Usage: $argv0 <username> <passwd>" 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 <newpasswd> | passwd --stdin <username> 及 echo <username>:<passwd> | chpasswd来修改用户密码:
| #!/bin/sh
if [ $# -ne 2 ] ; then #echo "$2" | passwd --stdin "$1" |
修改远程主机上用户密码:
1、交互配置远程用户:
| echo <newpasswd> | ssh -l root <host> passwd --stdin <username> |
如:
| 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 <username>:<passwd> | ssh -l root <host> chpasswd 2>&1 |
或
将<username>:<passwd>对先写到一文件passwd.tmp中,然后执行
chpasswd < passwd.tmp [作者未测试]
或
ssh -l root <host>
.... 交互输入root密码
然后执行以上的所有可用方式均可
2、非交互配置远程用户:
则需要用到expect来进行处理,通过ssh登录到远程机器,然后结合上述配置方式,以完成自动修改用户密码。
| #!/usr/bin/expect #@brief to change user password by ssh remote machine proc usage {funcname} { # check param # get param spawn ssh -l $loginname $host if { [string compare $loginname "root"] == 0 } { |
[转] 关于linux下通过shell命令(自动)修改用户密码的更多相关文章
- Linux下使Shell 命令脱离终端在后台运行
--Linux下使Shell 命令脱离终端在后台运行------------------------------------2014/02/14你是否遇到过这样的情况:从终端软件登录远程的Linux主 ...
- linux下实现shell脚本自动连接mongodb数据库并创建索引
在linux下创建shell脚本
- linux下passwd命令设置修改用户密码
1.passwd 简单说明: 我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码:passwd命令的用法也很多,我们只选如下的几个参数加以说明:想了解更多,请参考man passwd或p ...
- 【转】linux下passwd命令设置修改用户密码
1.passwd 简单说明: 我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码:passwd命令的用法也很多,我们只选如下的几个参数加以说明:想了解更多,请参考man passwd或p ...
- Linux chpasswd (批量或单一修改用户密码)和passwd(直接修改用户密码)
Linux命令:chpasswd 批量或者单一修改用户密码 语法: 1:# echo 用户名:密码 | chpasswd 2:# chpasswd < doiido.txt 实例 1.直接修改d ...
- linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)
程序猿都非常懒,你懂的! 近期在开发中,须要用到server的ip和mac信息.可是server是架设在linux系统上的,对于多网口,在获取ip时就产生了非常大的问题.以下是在windows系统上, ...
- (转)Linux下使Shell 命令脱离终端在后台运行
转自: http://www.linuxidc.com/Linux/2011-05/35723.htm 方法如下: (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到 ...
- Java调用Linux下的shell命令并将结果以流的形式返回
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader; public cl ...
- linux下使用shell命令通过wpa_cli控制wpa_supplicant连接wifi
最近在调试wifi,已经把wpa_supplicant 工具编译打包好了,为了测试wif驱动及wifi模块是否ok,需要用shell命令临时启动wifi服务连接wifi热点测试. 首先板子启动用ifc ...
随机推荐
- html5-websocket初探
HTML5规范在传统的web交互基础上为我们带来了众多的新特性,随着web技术被广泛用于web APP的开发,这些新特性得以推广和使用,而websocket作为一种新的web通信技术具有巨大意义. 什 ...
- 关于动态生成data组件
/*! * WeX5 v3 (http://www.justep.com) * Copyright 2015 Justep, Inc. * Licensed under Apache License, ...
- visual.studio.15.preview5 编译器
前段时间微软更新了新版开发工具visual studio 15 preview5,安装后连文件结构目录都变了,想提取编译器还找不到. 不是原来的VC\BIN目录,已迁移到IDE\MSVC\14.10. ...
- python xlwt,xlutils 在excel里面如何插入一行数据
就是把插入行之后值重新输出来. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import xl ...
- [MySQL] SQL_ERROR 1032解决办法
一.缘由: 在主主同步的测试环境,由于业务侧没有遵循同一时间只写一个点的原则,造成A库上删除了一条数据,B库上在同时更新这条数据. 由于异步和网络延时,B的更新event先到达A端执行,造成A端找不到 ...
- 两个二进制数多少个位(bit)不同
class Solution { public: /** * 获得两个整形二进制表达位数不同的数量 * * @param m 整数m * @param n 整数n * @return 整型 */ in ...
- jquery是如何架构的.
心里一直有个疑问. jquery是如何做到一个jQuery即可以当方法用比如$();又可以当对象用$.extend(); 现在总结一下吧 function method(){} var m=new m ...
- css实现绝对定位元素居中
前端我们时常需要封装一些弹出框,这些弹出框大小都不能确定,多半是用js实现居中. 现在有了css3可以不用js了. .box{ background-color: blueviolet; width: ...
- Objective-C中的@property和@synthesize用法
@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用. 功能:让编译好器自动编写一个与 ...
- 2016-06-06:X264码率控制
H.264与x264 H264是一个视频压缩编码标准.https://zh.wikipedia.org/wiki/H.264/MPEG-4_AVC X264实现H264视频压缩标准的开源项目.http ...