[转] 关于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 ...
随机推荐
- 苹果Mac OS X显示隐藏文件的方法
苹果Mac OS X显示隐藏文件的方法有很多种,这里介绍一种最简单的, 方法/步骤 打开“终端”,根据自己的版本选择命令 早期的OS X(10.6~10.8)系统可以使用如下两条命令来开始 ...
- linux keepalived+LVS 实现mysql 从库负载均衡
前情提要: 参考链接: http://www.osyunwei.com/archives/7464.html ps:以上为本次操作的主要参考资料,非常感谢此文作者的贡献,我的随笔的主要目的是 说明在使 ...
- nova-scheduler start flow
- GC之六--SystemGC完全解读
概述 JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可以通过jmap来触发等,针对每个场景其实我 ...
- SQL中ISNULL用法示例
ISNULLSQL查询示例SELECT ISNULL 使用指定的替换值替换 NULL. 语法 :ISNULL ( check_expression , replacement_val ...
- Linux下ejabberd安装配置
1.下载Ejabberd安装包 wget http://www.process-one.net/downloads/ejabberd/2.1.13/ejabberd-2.1.13-linux-x86_ ...
- COSBench性能测试配置--一张图说明一切
COSBench性能测试配置--一张图说明一切: 测试配置,并发数,运行时间设置
- python-appium识别元素等待时间
1.显式等待 一个显式等待是你定义的一段代码,用于等待某个条件发生然后再继续执行后续代码. from selenium import webdriverfrom selenium.webdriver. ...
- oracle连接的三个配置文件(转)
Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器 ORACLE当中 ...
- lua 面向对象
对象的特点是: 对象拥有自己的数据,两个对象即使数据完全相同,他们也是相互独立的: 对象之间可以共享对象的行为,也就是他们的方法是一致的: lua中的table就非常适合作为一个对象,可以在table ...