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

如何不规范的设置密码

上来就干

当我们使用服务器的时候,有时候需要一些非常简单的密码,来方便使用,但是自己完全可控的环境下,我们希望我们的密码足够的简单,比如,可能它的密码就是123,或者是1?
但是当你直接使用passwd的时候,会受到PAM配置的限制,
在这里插入图片描述

所以我们用点奇淫技巧,比如我们把mark的密码设置为1

echo "mark:1" | sudo chpasswd -c SHA256

这样就可以了,将上面替换mark1为你的username和密码即可

echochpasswd 命令组合工作原理详解

当您执行 echo "baijs:1" | sudo chpasswd -c SHA256 这个命令时,实际上是将两个命令通过管道(pipe)组合在一起。这里详细解释整个过程:

1. 命令分解

这个命令包含三个主要部分:

  1. echo "baijs:1" - 输出文本
  2. | - 管道符号
  3. sudo chpasswd -c SHA256 - 以管理员权限运行的密码修改命令

2. echo 命令工作原理

echo 是一个基本的 Unix/Linux 命令,用于输出文本:

  • echo "baijs:1" 会输出文本字符串 “baijs:1”
  • 这个字符串采用特定格式:用户名:新密码
  • 如果在终端单独运行这条命令,您会在屏幕上看到 “baijs:1”

3. 管道符号 | 的作用

管道符号 | 是 Unix/Linux 系统中的重要概念:

  • 它将前一个命令的标准输出 (stdout) 连接到后一个命令的标准输入 (stdin)
  • 简而言之,它把第一个命令的输出作为第二个命令的输入
  • 管道允许命令链接,形成数据处理流水线

4. chpasswd 命令功能

chpasswd 是一个系统管理命令,专门用于批量更新密码:

  • 它从标准输入读取 用户名:密码 格式的文本
  • 可以同时处理多行,实现批量密码更新
  • -c SHA256 选项指定使用 SHA256 算法进行密码加密(而不是默认的加密方式)

5. sudo 的必要性

sudo 命令用于以管理员(root)权限执行后面的命令:

  • 修改密码是一项需要特殊权限的敏感操作
  • 没有 sudo,普通用户无法修改其他用户的密码
  • 执行时,系统可能会要求输入您自己的密码来验证权限

6. 整个过程详解

当您执行完整命令时,以下是背后发生的步骤:

  1. echo "baijs:1" 生成文本 “baijs:1”
  2. 这个文本通过管道 | 被传送到 chpasswd 命令
  3. sudo 提升 chpasswd 命令的执行权限到管理员级别
  4. chpasswd 从管道接收文本 “baijs:1”
  5. chpasswd 解析这个文本,识别用户名 “baijs” 和新密码 “1”
  6. 使用指定的 SHA256 算法加密密码 “1”
  7. 更新系统密码数据库(通常是 /etc/shadow 文件)
  8. 用户 “baijs” 的密码被成功更改为 “1”

7. 系统如何实际存储密码

密码不会以明文形式存储:

  • 密码经过 SHA256 算法单向加密后存储
  • 实际存储在 /etc/shadow 文件中
  • 格式大致为:用户名:加密密码:上次修改时间:...其他密码政策信息
  • 即使有 root 权限也无法还原看到原始密码,只能重置

8. 与直接使用 passwd 命令的区别

传统的 passwd 命令是交互式的:

  • passwd 会提示用户输入新密码,然后再次确认
  • passwd 内置执行密码策略检查(如长度、复杂性)
  • chpasswd 允许非交互式、批量处理,适合脚本使用
  • 使用 chpasswd 可以绕过某些交互式检查

9. 使用注意事项

  • 这种方法可能绕过系统默认的密码复杂度要求
  • 管道传输的密码在命令历史中可见,存在安全风险
  • 在多用户系统中应谨慎使用这种方法
  • 命令执行后,新密码立即生效

这种组合命令的方式在系统管理和自动化脚本中非常常见,它允许以非交互方式完成通常需要用户交互的任务。

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

相关文章:

  • 数据安全与纵深访问控制:构建数字时代的安全防线
  • 分享全国数字人才技能提升师资培训班 第五期邀请函
  • Linux三剑客之grep命令使用教程
  • Kotlin 极简小抄 P8(不可空类型、可空类型、注意事项、非空断言 !!)
  • 【Spring AI集成实战】基于NVIDIA LLM API构建智能聊天应用:从配置到函数调用全解析
  • git 删除某个远程库的分支
  • Redis实战-缓存篇(万字总结)
  • QT5.15 MacOS 打包指南
  • Nginx location匹配模式详解
  • Vue 3 路由传参使用指南
  • vscode使用ssh链接服务器
  • 企业批量处理刚需PrintPDF 网络财务办公打印 网页到 Office 一键转 PDF
  • Python学习笔记--Django 表单处理
  • Python - 文件部分
  • 【监控】Blackbox Exporter 黑盒监控
  • 历年福州大学保研上机真题
  • 【RAG】ragflow源码亮点:文档embedding向量化加权融合
  • 大模型学习笔记day2 LoRA微调
  • Maven-概述-介绍安装
  • GitHub Page填写域名显示被占用
  • js实现监听Ctrl/Cmd+C复制、Ctrl/Cmd+Z撤销 等快捷键
  • java高级 -动态代理
  • 机器学习算法:线性回归
  • NotePad++编辑Linux服务器文档
  • 常见小问题(Open Folder as PyCharm Project)
  • 第四十四节:目标检测与跟踪-模板匹配
  • Trae中使用mcp连接MariaDB
  • 第12次04 :首页展示用户名
  • MFC: 文件加解密(单元测试模块)
  • vue+ThreeJs 创建过渡圆圈效果