expect交互式创建账号密码

#!/usr/bin/expect
set user [lindex $argv 0]
set pass [lindex $argv 1]
spawn useradd -s /bin/sh -d /home/$user $user
expect "*#"
spawn passwd $user
expect "*password:"
send "$pass\r"
expect "*password:"
send "$pass\r"
spawn smbpasswd -a $user
expect "*password:"
send "$pass\r"
expect "*password:"
send "$pass\r"
interact

注释:

spawn: 后面加上需要执行的shell 命令

expect: 只有spawn 执行的命令结果才会被expect 捕捉到,因为spawn 会启

动一个进程,只有这个进程的相关信息才会被捕捉到,主要包括:标准输入的提

示信息,eof 和timeout。

send 和send_user:send 会将expect 脚本中需要的信息发送给spawn 启动

的那个进程,而send_user 只是回显用户发出的信息,类似于shell 中的echo 而

已。

set 脚本传参,expect是通过set <变量名称> [lindex $argv <param index>]

时间: 2024-08-09 01:28:14

expect交互式创建账号密码的相关文章

非交互式创建账号和修改密码

ubuntu系统 1. 创建用户 带家目录,登录权限 [email protected]:/home/leco# useradd -m -s /bin/bash apple 2. 非交互式修改密码 [email protected]:/home/leco# echo "apple:111111" | chpasswd centos系统 echo "123456"|passwd --stdin  leco

cas-简单的验证cas服务器登录和读取数据库账号密码登录

环境win8+tomcat7+jdk7+cas-server-4.0.0-release 1. 首先到 http://downloads.jasig.org/ 地址下载 cas-server-4.0.0-release.zip,解压后到modules目录中找到cas-server-webapp-4.0.0.war,复制到tomcat的webapp目录下,修改名称为cas.war 2. (1)创建证书 keytool -genkey -alias mycas -keyalg RSA -keysiz

离线破win2003域账号密码

离线破win2003域账号密码 国内网站讲了许多方法.把我实验成功的经验跟大家分享. 方法是按照tim的文章操作,链接如下: http://pauldotcom.com/2011/11/safely-dumping-hashes-from-liv.html 一实验环境:windows server2003,域环境 搭建方法很简单,百度搜搜. 准备工具:vssown.vbs,bt5,ntds_dump_hash.zip vssown.vbs网上找 http://www.ntdsxtract.com

推送文件(expect交互式方式与sshpass非交互式方式)

前提条件 以下两种推送的文件是SSH的公钥,推送方式依赖于SSH,基于SSH的相关方面操作和机器相关配置请参考我的上一篇博文"ssh服务批量管理例子" 1.expect交互式方式 1.1上传文件及文件内容 #以10机器为例. #执行rz –y分别上传"dis-sshkey"."expect-copy-sshkey.exp"和"iplist",三者文件内容如下: [[email protected] ~]$ ls -l dis-

利用SharedPreferences完成记住账号密码的功能

利用SharedPreferences完成记住账号密码的功能 效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如果CheckBox被选,则将配置文件中记录的账号密码信息回馈给账号密码控件,否则清空. SharedPreferences使用方法: 1.创建名为config的配置文件,并且私有 private SharedPreferences con

mysql创建账号

1.创建账号1)只读账号GRANT USAGE ON *.* TO 'testgao_r'@'192.168.1.1' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 14400000 MAX_UPDATES_PER_HOUR 7200000 MAX_CONNECTIONS_PER_HOUR 14400000 MAX_USER_CONNECTIONS 2000;GRANT SELECT, EXECUTE, SHOW VIEW ON `test

不同林间域账号密码迁移

一. 迁移前期工作 1.首先要创建2个域之间的信任关系,林信任或外部信任都可以.创建信任的过程包括提升林功能级.转发双方的DNS(在双方的域DNS上建立转发器,指向对方的DNS). 2.在目标域上安装ADMT,然后在目标域上导出密钥key.pes,密钥key.pes在源域密码导出服务用到,并拷贝到源域DC(test.com),其中keypassword是保护key.pes密钥文件的密码,随后导入时将会用到. 在目标域cmd里执行:c:\>admt key /option:create /sour

&#8203;实现以账号密码验证的VPN服务器

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 实现以账号密码验证的VPN服务器. 环境 服务端:CentOS 6.2 32 客户端:Windows XP 服务端配置 # 关闭SELinux sed -i '/^SELINUX\b/s/=.*/=disabled/' /etc/selinux/config setenforce 0 # 安装mysql-server yum -y inst

Mongodb账号密码模式的基本认证

背景: 原先使用的MongoDB并没有使用账号密码的认证方式去登陆,使用的是非认证方式:现需要将其配置为以账号密码的方式去登陆和使用,配置步骤如下: 一.配置普通权限用户 1.使用MongoBooster连接上MongoDB的Server 2.执行以下脚本,创建管理用户的账户aa use admin db.createUser({  user:"aa",  pwd:"aa", roles:[{role:"userAdminAnyDatabase"