当前位置: 首页 > news >正文

Linux技能篇-非交互式修改密码

今天的文章没有格式,简单分享一个小技能,就是标题所说–非交互式修改密码。
在这里插入图片描述

一、普通方式修改用户密码

最普通的修改密码的命令就是passwd命令


[root@localhost ~]# passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#

在这种方式下,修改密码就需要重复输入两次密码,这在初学的时候没有问题,但是如果密码复杂一点,输入两次,就会出现输错或者输入效率很低的情况。假如有50台机器需要修改密码,这时候passwd命令就是灾难!你要输50次passwd命令,100遍密码!!!这时候就非常需要一个非交互命令来帮助你减轻工作负担,当然,如果你会使用ssh非交互做一个脚本出来,那更好,当然,这就比较考验的Linux脚本功底了。

二、非交互修改密码

1. passed命令+printf命令实现

先看演示,我要改的密码是:5201314my@

[root@localhost ~]# printf "5201314my@\n5201314my@\n" | passwd root
Changing password for user root.
New password: Retype new password: passwd: all authentication tokens updated successfully.

这种方式就是把你要修改的密码通过printf打印参数,将参数通过管道传递到passwd命令中,很容易理解,但是这方法不常用,命令相对还是很繁琐,但是易于理解。

2. usermod命令实现

先看演示,我要改的密码是:5201314my@

[root@localhost ~]# usermod --password $(echo '5201314my@' | openssl passwd -1 -stdin) root
[root@localhost ~]# 

这个用法不常见,这个几乎没有人去这么用,这个会比你直接去修改输入还多,只是在这里展示可以这么去做,不做解释。

3.paasswd命令+EOF(自定义终止符)实现

先看演示,我要改的密码是:5201314my@

[root@localhost ~]# passwd root << EOF
> 5201314my@
> 5201314my@
> EOF
Changing password for user root.
New password: Retype new password: passwd: all authentication tokens updated successfully.
[root@localhost ~]# 

这种方法和printf有点类似,将密码通过重定向的方式传输到passwd命令中,去自动做交互,但是依然不够简洁。

4.passwd命令+管道+echo命令实现

先看演示,我要改的密码是:5201314my@

[root@localhost ~]# echo '5201314my@' | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.

stdin是接受echo后面的字符串做为密码,说白了是还是通过变量赋值和管道传参来实现,这个相比上面三种,就只需要写一次密码,用熟练了相当好使。
注意:echo后面不要忘了加引号把用户名和新密码引起来

5.chpasswd命令实现

先看演示,我要改的密码是:5201314my@

[root@localhost ~]# echo "root:5201314my@" | chpasswd
[root@localhost ~]# 

这里使用的是chpasswd命令去做,还是使用管道传递参数。

总结

推荐使用第四种和第五种,他们的区别就是第四种有回显,第五种没有。其他的凭爱好研究吧,看起来貌似并没有减轻干活的负担。

相关文章:

  • springboot 返回problem+json
  • 【Vue】filter的用法
  • debian 12 配置
  • 老牌开源 SVG 编辑器 SVGEdit 是如何架构的?
  • 优秀的时间追踪软件Timemator for Mac轻松管理时间!
  • vscode-insiders Remote-SSH XHR failed无法访问远程服务器
  • 【C++ 设计模式】面向对象设计原则 Template Method 模式 Strategy 策略模式
  • openssl升级
  • maven 将Jar包安装到本地仓库
  • 红黑树详解
  • python给视频增加字幕
  • 【maven】【IDEA】idea中使用maven编译项目,报错java: 错误: 找不到符号 【2】
  • 求最小的起始正整数
  • java大视频在线预览(支持断点下载)
  • ChatGPT重磅升级!集简云支持GPT4 Turbo Vision, GPT4 Turbo, Dall.E 3,Whisper等最新模型
  • C# 免费离线人脸识别 2.0 Demo
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS 专业技巧
  • Js基础——数据类型之Null和Undefined
  • magento 货币换算
  • Mithril.js 入门介绍
  • Python语法速览与机器学习开发环境搭建
  • REST架构的思考
  • ubuntu 下nginx安装 并支持https协议
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • XML已死 ?
  • 第2章 网络文档
  • 看域名解析域名安全对SEO的影响
  • 聊聊directory traversal attack
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用 Docker 部署 Spring Boot项目
  • 通过git安装npm私有模块
  • 微服务核心架构梳理
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 责任链模式的两种实现
  • 正则表达式
  • zabbix3.2监控linux磁盘IO
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • # 透过事物看本质的能力怎么培养?
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (2)nginx 安装、启停
  • (floyd+补集) poj 3275
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (python)数据结构---字典
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (未解决)macOS matplotlib 中文是方框
  • (转)LINQ之路
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)程序员疫苗:代码注入