当前位置: 首页 > 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命令去做,还是使用管道传递参数。

总结

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

http://www.lryc.cn/news/242213.html

相关文章:

  • 记一次docker服务启动失败解决过程
  • npm ERR! node-sass@4.13.0 postinstall: `node scripts/build.js`
  • Java定时任务 ScheduledThreadPoolExecutor
  • Android Studio 显示build variants工具栏
  • c++八股文记录
  • C++ 指针进阶:动态分配内存
  • 点大商城V2.5.3分包小程序端+小程序上传提示限制分包制作教程
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于机器学习的车载 CAN 网络入侵检测
  • Jetson orin(Ubuntu20.04)不接显示器无法输出VNC图像解决办法以及vnc安装记录
  • LeetCode Hot100 108.将有序数组转为二叉搜索树
  • 微机原理_3
  • 4.操作系统常见面试题(2)
  • springboot 开启和关闭kafka消费
  • org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
  • 系统安全测试要怎么做?
  • Golang并发模型:Goroutine 与 Channel 初探
  • 批量添加PPT备注
  • 数据挖掘之PCA-主成分分析
  • 人工智能-注意力机制之注意力汇聚:Nadaraya-Watson 核回归
  • <HarmonyOS第一课>1·运行Hello World【课后考核】
  • Ubuntu18.04安装A-Loam保姆级教程
  • 重生之我是一名程序员 40 ——字符串函数(1)
  • Navicat 技术指引 | 连接 GaussDB 主备版
  • 【git】pip install git+https://github.com/xxx/xxx替换成本地下载编译安装解决网络超时问题
  • SQL Server对象类型(6)——4.6.存储过程和函数(Procedure和Function)
  • spring @Async异步执行
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • html table样式的设计 表格边框修饰
  • 2023年【危险化学品经营单位安全管理人员】考试内容及危险化学品经营单位安全管理人员最新解析
  • 腾讯云 小程序 SDK对象存储 COS使用记录,原生小程序写法。