仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1363|回复: 9
打印 上一主题 下一主题

[shell编程] 来一发批量修正近程CentOS办事器暗码

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!公司如今有100多台办事器,必要对办事器举行批量的修正root暗码,还要在每台办事器新建一个用户,假如一个一个登到的办事器长进行修正的话,估量一个下战书又没有了,起首想到的是我最喜好的php,个中有个ssh2模块,不能不供认用php来处置如许的义务是一件很纠结的事变,然后又想到了用shell,不外发明很快就写不下往了,shell的交互才能仍是不克不及让人奉承的,最初发明了expectexpect以其壮大的交互才能,无疑是处置这类义务的首选,再加上expect能够内嵌shell,这使得他变得更壮大。



第一种***经由过程expect批量修正linux办事器用户名和暗码

起首要有一个办事器的ip列表,把要处置的ip放在内里
192.168.6.236
192.168.6.235
192.168.6.234
192.168.6.233
192.168.6.232
192.168.6.231
.....
然后是shell剧本shell.sh
#!/bin/bash
if["$1"=""]||["$2"=""]||["$1"="--help"]["$1"="-h"]
then
echo"usage:shell.shpath/iplistpath/adduser"
exit
fi
cat$1|whilereadline
do
[-z$line]&&continue
$2$line;
done
echo-e"
welldone
"

上面是最主要的局部adduser
#!/usr/bin/expect

#登录的用户名
setloginuser""
#暗码
setloginpass""

#要修正的用户名
setpassuser"dfdjfk"
#要修正成的新暗码
setnewpass"yournewpassword"

#要增加的新的用户名
setnewusername"newusername"
#要增加的新用户的暗码
setnewpasswd"newpasswd"

setipaddr[lrange$argv00]
settimeout300
setcmd_prompt"]#|~]?"

#---------------------------------------------------经由过程ssh登录
spawnssh$loginuser@$ipaddr
settimeout300
expect{
-re"Areyousureyouwanttocontinueconnecting(yes/no)?"{
send"yes"
}-re"assword:"{
send"$loginpass"
}-re"Permissiondenied,pleasetryagain."{
exit
}-re"Connectionrefused"{
exit
}timeout{
exit
}eof{
exit
}
}

expect{
-re"assword:"{
send"$loginpass"
}
-re$cmd_prompt{
send""
}
}

#-------------------------------------------修正暗码
send"passwd$passuser";
expect{
"NewUNIXpassword:"{
send"$newpass"
}
"passwd:Onlyrootcanspecifyausername."{
exit
}
}

expect{
"RetypenewUNIXpassword:"{
send"$newpass"
}
}
#------------------------------------------------------增加一个新用户并改暗码
expect-re$cmd_prompt
sleep1
send"useradd$newusername"
sleep1
send"passwd$newusername";
expect{
"NewUNIXpassword:"{
send"$newpasswd"
}
"passwd:Onlyrootcanspecifyausername."{
exit
}
}

expect{
"RetypenewUNIXpassword:"{
send"$newpasswd"
}
}

#---------------------------------------------加入
expect-re$cmd_prompt
exit
ok调试完也快要消费了一个下战书


第二种***经由过程shell剧本完成批量变动暗码
#!/bin/bash
#BYkerryhu
#MAIL:king_819@163.com
#BLOG:http://kerry.blog.51cto.com
#PleasemanualoperationyumofbeforeOperation.....

1、创建信托干系
192.168.9.203为办理机
192.168.9.201192.168.9.202为近程linux办事器
1、在办理机天生证书、
[root@manage~]#ssh-keygen-trsa(然后一起回车)
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/root/.ssh/id_rsa.(私钥)
Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.(公钥)
Thekeyfingerprintis:
36:ec:fc:db:b0:7f:81:7e:d0:1d:36:5e:29:dd:5b:a0

2、将办理机上的公钥传送到各近程办事器
如近程办事器变动了默许的ssh端标语,就利用scp-P17173,17173为端标语
[root@manage.ssh]#scpid_rsa.pub192.168.9.201:/root/.ssh/authorized_keys
[root@manage.ssh]#scpid_rsa.pub192.168.9.202:/root/.ssh/authorized_keys

办理机与近程主机信托干系创建终了
注重:大概会呈现并未创建信托干系的情形。还需操纵一下步调
<pstyle="padding:0px;margin:0px;clear:both;height:auto;overflow:hidden;color:rgb(85,85,85);font-family:宋体,ArialNarrow,arial,serif;font-size:14px;line-height:28px;">GNOME下设置ssh-agent
假如你在GNOME运转情况下,实行以下几步设置ssh-agent.ssh-agent工具用户保留你的DSA密钥passphrase以便每次ssh大概scpMachineB的时分.当你上岸GNOME,openssh-askpass-gnome提醒输出passphrase并保留,直到你加入GNOME.在该GNOMEsession,ssh大概scp毗连到MachineB,体系将不再请求你输出passphrase.
GNOMEsession中保留passphrase操纵步调:
1.
选择MainMenuButton(Panel)=>Preferences=>MorePreferences=>Sessions,点击StartupPrograms标签.点击Add而且在StartupCommand文本框中输出/usr/bin/ssh-add.设定一个低于任何一个已存在的下令的优先级数字,以包管它最初被实行.一个好的ssh-add优先级数字为
再见西城 该用户已被删除
沙发
发表于 2015-1-15 07:50:08 | 只看该作者

来一发批量修正近程CentOS办事器暗码

求沙发
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-17 17:47:56 | 只看该作者
我想即使Linux高手也很难快速准确精练的回答你。
小妖女 该用户已被删除
地板
发表于 2015-1-26 21:16:15 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
蒙在股里 该用户已被删除
5#
发表于 2015-2-5 03:04:42 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
谁可相欹 该用户已被删除
6#
发表于 2015-2-11 03:46:16 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-1 21:17:27 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
乐观 该用户已被删除
8#
发表于 2015-3-11 02:11:20 | 只看该作者
老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。
简单生活 该用户已被删除
9#
发表于 2015-3-17 20:51:44 | 只看该作者
你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。
飘灵儿 该用户已被删除
10#
发表于 2015-3-25 04:27:29 | 只看该作者
熟读写基础知识,学得会不如学得牢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表