linux脚本批量创建用户名和密码(1),保洁阿姨看完都会了

[root@controller01 ~]# echo Xz1@#Ty7 | passwd -–stdin jtxzcj

passwd: bad argument -–stdin: unknown option

提示我 --stdin 未知参数 ,what f!

见 方法二!!!

方法二

用chpasswd 修改,语法:echo user:newpasswd | chpasswd

亲测 可以!如果再不行,而且不想一台台passwd 修改,就得用 expect 脚本完成了,方式1和2都不行的或者想玩下实验的,可以见我博客中 expect命令详解来玩玩。

[root@controller01 ~]# echo jtcjxz:Xz1@#Ty7 |chpasswd

[root@controller01 ~]#

[root@controller01 ~]# su - jtcjxz

Last login: Mon Apr 6 08:36:57 CST 2020 from 10.237.99.83 on pts/0

[jtcjxz@controller01 ~]$ su - jtcjxz

Password:

Last login: Wed Apr 8 03:03:50 CST 2020 on pts/1

[jtcjxz@controller01 ~]$ logout

[jtcjxz@controller01 ~]$ logout

虽然本地实现可以,但当我ssh 修改其他服务器的时候,发现 不支持 gssapiauth…

这个是ssh版本问题吧 也或许是 开启了sapiauthentication 。

[root@controller01 ~]# ssh 0.0.0.2 echo jtcjxz:Xz1@#Ty7 |chpasswd

/etc/ssh/ssh_config line 57: Unsupported option “gssapiauthentication”

Authorized users only. All activity may be monitored and reported

解决方法就是

vi /etc/ssh/sshd_config

找到 下面两行并注释掉 ,然后重启ssh服务:systemctl restart sshd(7.0及以上版本)

在这里插入图片描述

但如果我要这样搞 我就得一台一台上去操作2次(注释和取消注释)。我疯了才会这样做吧! pass了方法二,于是就有了方法三!

对了,强行解释一波,常理下 该方法是可行的,看我测试机上:

[root@compute1 ~]# ssh 10.233.3.226 echo ccx:ccxplus | chpasswd

The authenticity of host ‘10.233.3.226 (10.233.3.226)’ can’t be established.

ECDSA key fingerprint is SHA256:DBump8wHadJ1tDhz2KUePkCN7xtZmmdkjQ6Ooi7j1j8.

ECDSA key fingerprint is MD5:5a:83:52:87:96:08:3a:34:06:38:eb:53:48:f7:58:ff.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘10.233.3.226’ (ECDSA) to the list of known hosts.

root@10.233.3.226’s password:

[root@compute1 ~]#

[root@compute1 ~]# ssh ccx@10.233.3.226

ccx@10.233.3.226’s password:

Last login: Tue Apr 7 19:05:37 2020

[ccx@compute1 ~]$ logout

Connection to 10.233.3.226 closed.

[root@compute1 ~]#

在这里插入图片描述

方式三

方式二中才说 我并不想用expect 来搞,本来不想麻烦的,但我不服输啊!

所以 真香警告! 搞嘛

注: 期间我 放了一些 理论上可行,但实际不行的实例。 请看到最后,不想了解过程的请直接跳到最后看可行方法。

说下先行条件:你的服务器上得有 expect 命令,没有的去装吧,不能yum的,一样,去我博客shell分类中找安装方法把,我现在有点烦躁 并不想去打开我的博客去复制链接放这。

怕服务器有啥不可抗拒因素误导我,所以我先用测试机做的实验!!!!

打开脚本,嘴角带着一丝邪笑,快速敲下最简单并且能达到我要求的命令:spwan ssh 10.233.3.226 echo ccx:ccx |chpasswd 当初研究这个没少被折磨,现在已经搞清楚运行模式,所以现在 熟练的让人心疼??

[root@control ~]$vi zh.sh

#spawn ssh 10.233.3.226 echo ccx:ccx | chpasswd

expect 执行脚本,没报错,完美!

然后登陆,密码错误?我输错了? 再来 错误? 老密码,登上了!! ???没生效??? 咦? 是不是不支持chpasswd

[root@control ~]$expect zh.sh

spawn ssh 10.233.3.226 echo ccx:ccx | chpasswd

[root@control ~]$

[root@control ~]$

[root@control ~]$ssh ccx@10.233.3.226

ccx@10.233.3.226’s password:

Permission denied, please try again.

ccx@10.233.3.226’s password:

Last failed login: Tue Apr 7 19:37:34 CST 2020 from controller on ssh:notty

There were 3 failed login attempts since the last successful login.

Last login: Tue Apr 7 19:35:10 2020 from controller

[ccx@compute1 ~]$ 登出

Connection to 10.233.3.226 closed.

既然怀疑是不支持 chpasswd 那就试–stdin吧。这时心里已经发憷了,不支持chpasswd? 没理由啊,而且要是不支持chpasswd ,只能用 --stdin, 服务器不支持–stding啊!!凉凉。

[root@control ~]$vi zh.sh

#spawn ssh 10.233.3.226 echo ccx:ccx | chpasswd

spawn ssh 10.233.3.226 echo ccx | passwd --stdin ccx

expect 执行脚本,没报错,完美!

然后登陆,密码错误?我输错了? 再来 错误? 老密码,登上了!! ???没生效??? 咦? 是不是不支持 --stdin ???

[root@control ~]$expect zh.sh

spawn ssh 10.233.3.226 echo ccx | passwd --stdin ccx

[root@control ~]$

[root@control ~]$

[root@control ~]$ssh ccx@10.233.3.226

ccx@10.233.3.226’s password:

Permission denied, please try again.

ccx@10.233.3.226’s password:

Last failed login: Tue Apr 7 19:38:24 CST 2020 from controller on ssh:notty

There was 1 failed login attempt since the last successful login.

Last login: Tue Apr 7 19:37:37 2020 from controller

[ccx@compute1 ~]$ 登出

Connection to 10.233.3.226 closed.

what ??????????? 哪个环节出问题了? 明明运行都正常着的啊 为啥 凭啥 不给我修改密码,不支持echo模式修改密码???? 不可能啊!! !凭啥啊! 不可能 我不信 。

那么就来一套完整的 试试,我就要用echo修改密码!

[root@control ~]$cat zh.sh

#spawn ssh 10.233.3.226 echo ccx | passwd --stdin ccx

#spawn ssh 10.233.3.226 echo ccx:ccx | chpasswd

spawn ssh 10.233.3.226

expect {

“*assword” { send “root\r”;}

“yes/no” {send "yes\r"exp_continue}

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

(img-sQvTdE9D-1712685619329)]
[外链图片转存中…(img-bVOCOygp-1712685619330)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
[外链图片转存中…(img-rUzanVxZ-1712685619330)]

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值