linux基本功系列之chage命令实战

news2024/12/27 11:29:18

在这里插入图片描述

文章目录

  • 前言
  • 一. chage命令的介绍
  • 二. 常用案例示范
    • 1. 查看用户密码的有效期
    • 2. 设置密码的过期时间
    • 3. 设置账号的失效时间
  • 总结

前言

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. chage命令的介绍

作用: chage用于密码的实效管理,用来修改帐号和密码的有效期,可以用来确定用户何时修改密码。

语法格式:chage [参数]

我们可以用chage --help来查看常用的参数。

[root@zmedu-17 day05]# chage --help
用法:chage [选项] 登录

选项:
  -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
  -E, --expiredate 过期日期     将帐户过期时间设为“过期日期” 0表示马上过期,-1表示永不过期
  -h, --help                    显示此帮助信息并推出
  -I, --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
  -l, --list                    列出用户以及密码的有效期
  -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
  -M, --maxdays MAX_DAYS       密码保持有效的最大天数                           
  -R, --root CHROOT_DIR         chroot 到的目录
  -W, --warndays 警告天数       密码过期前,提前收到警告信息的天数


除了 --help查看帮助之外,还可以使用:

[root@DB-Server ~]#man chage
[root@DB-Server ~]# info chage
[root@DB-Server ~]# chage -h

时间日期间隔计算 1970-1-1

二. 常用案例示范

1. 查看用户密码的有效期

-l 用来查看密码是否过期
此处的-l是L的小写字母

[root@mufenggrow ~]# useradd mufeng
[root@mufenggrow ~]# chage -l mufeng
最近一次密码修改时间					:1月 16, 2023
密码过期时间					        :从不
密码失效时间							:从不
帐户过期时间						    :从不
两次改变密码之间相距的最小天数		    :0
两次改变密码之间相距的最大天数		    :99999
在密码过期之前警告的天数	            :7
[root@mufenggrow ~]# 

2. 设置密码的过期时间

现在我们有个mengfeng用户,我们来设置mufeng用户60天后密码过期,密码过期的前7天收到警告信息

[root@mufenggrow ~]# chage -M 60 -m7 -W 7 mufeng
[root@mufenggrow ~]# chage -l mufeng
最近一次密码修改时间					:1月 16, 2023
密码过期时间					:3月 17, 2023
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:7
两次改变密码之间相距的最大天数		:60
在密码过期之前警告的天数	:7

可以看到密码过期时间变成了3月17, 两次更改密码的最大间隔天数变成了60天,密码过期前警告时间变成了:7天。

如果你向我一样困惑于,这些参数到底修改的哪里呢,我们可以看下面的代码示例:

[root@mufenggrow ~]# tail -n 1 /etc/shadow
mufeng:!!:19373:7:60:7:::

可以看到mufeng用户在/etc/shadow里是由冒号分隔的几个部分,每个部分代表的意思如下:

这里我们把chage的参数对应的修改字段,直接标注在后面。

        第一个字段为:用户名;

        第二个字段为:加密的密码

        第三个字段为:密码最后一次修改的时间     (chage -d)

        第四个字段为:密码最小修改间隔时间     (chage -m)

        第五个字段为:密码的有效期           (chage -M)

        第六个字段为:密码需要变更前的警告天数  (chage -W)

        第七个字段为:密码过期后的宽限天数      (chage -I)

        第八个字段为:账号失效时间            (chage -E)

        第九个字段为:保留

根据上面的参数,如果我们要设置账号的失效时间该如何设置呢?

3. 设置账号的失效时间

## 创建用户
[root@mufenggrow ~]# useradd mufenggrow
## 给用户设置密码
[root@mufenggrow ~]# echo 123456|passwd --stdin mufenggrow
更改用户 mufenggrow 的密码 。
passwd:所有的身份验证令牌已经成功更新。

## 登录测试,查看是否可以登录
[root@mufenggrow ~]# ssh mufenggrow@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:9uJW2mOqzhYy5gtMsTHmt4V584na0LFqEGYXxA4rUM8.
ECDSA key fingerprint is MD5:42:35:b0:99:2c:04:c5:94:e6:f4:74:6d:af:ec:07:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
mufenggrow@127.0.0.1's password: 
[mufenggrow@mufenggrow ~]$ exit
登出
Connection to 127.0.0.1 closed.

## 使用-E参数,修改失效时间
[root@mufenggrow ~]# chage  -E 0 mufenggrow

再次登录测试,提示已经失效
[root@mufenggrow ~]# ssh mufenggrow@127.0.0.1
mufenggrow@127.0.0.1's password: 
Your account has expired; please contact your system administrator
Authentication failed.

英语句子:

学计算机也是学英语的过程,可以上面代码中出现的这个句子:

Your account has expired; please contact your system administrator
Authentication failed

翻译过来就是: 你的账户已经过期,请联系您的管理元,身份验证失败。

account 美 /əˈkaʊnt/ 账户
expired 美 /iks’paiəd/ 过期失效
contact 美 /ˈkɑːntækt/ 联系
system美 /ˈsɪstəm/ 系统
administrator 美 /ədˈmɪnɪstreɪtər/ 管理
Authentication 美 /ɔ:,θenti’keiʃən/ 认证,鉴定
failed 美 /feld/ 失败


## 3. 设置登陆必须修改密码

使用-d参数,设置修改密码的到期时间为0,这样下次登录系统的时候,就需要重新iu该密码
```bash

[root@mufenggrow ~]# tail -n1 /etc/passwd 
mufenggrow:x:1001:1001::/home/mufenggrow:/bin/bash
[root@mufenggrow ~]# chage -d 0 mufenggrow
[root@mufenggrow ~]# chage -l mufenggrow
最近一次密码修改时间					:密码必须更改
密码过期时间						:密码必须更改
密码失效时间						:密码必须更改
帐户过期时间						:1月 01, 1970
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数			:7
[root@mufenggrow ~]# 


可以看到,密码的过期时间,失效时间都变成了必须修改,我们登录来测试下。

## 登录用户
[root@mufenggrow ~]# ssh mufeng@127.0.0.1

mufeng@127.0.0.1's password: 
You are required to change your password immediately (root enforced)
## 这里开始要求修改密码
更改用户 mufeng 的密码 。
为 mufeng 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:

可以看到修改密码后,会自动推出,让我们重新登录,确保安全。

[root@zmedu-17 ~]# chage -M 60 -m 7 -W 7 gaosh3

总结

Linux 中的 chage 命令用于密码实效管理,可以显示用户密码的详细信息 ,还可以用来修改帐号和密码的有效期限。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023牛客寒假算法基础集训营1

题解 | #2023牛客寒假算法基础集训营1#_牛客博客 (nowcoder.net) //本人能力有限,以下只附上本人get到的题,其他参考以上链接或其他 A World Final? World Cup! (I) 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 …

【自学Docker 】Docker top命令

Docker top命令 大纲 docker top教程 使用 docker top 命令可以用来查看 Docker 中运行的进程信息。docker top 命令后面的 CONTAINER 可以是容器 ID,或者是容器名。 docker top语法 haicoder(www.haicoder.net)# docker top [OPTIONS] CONTAINER [ps OPTIONS]案…

说话的三重复杂性

从0开始首先要有一个说话者,这个说话者说出来的话有三重有意。说话者想要表达的东西。文字本身的意义。倾听者所理解的意义。例子:说话者问:有女朋友吗?我们假设说话者要表达,如果还没,那么一起加班。文字本…

GIS入门进阶之017

一、网络分析 网络分析是ArcGIS提供的重要的空间分析功能,利用它可以模拟现实世界的网络问题。如从网络数据中寻找多个地点之间的最优路径,确定网络中资源的流动方向、资源配置和网络服务范围等。 网络是图论和运筹学中的一个数学模型,通常用…

【C#】封装.net framework函数库,并打包发布dll函数库到nuget服务器

作者:小5聊 简介:一只喜欢全栈方向的程序员,专注基础和实战分享,欢迎咨询,尽绵薄之力答疑解惑! 1、Nuget函数库管理工具 1.1、什么是Nuget Nuget是一个.NET平台下的开源的项目,它是Visual Stu…

电脑怎么设置定时关机?分享2个简单操作!

随着互联网时代的发展,越来越多人使用电脑。使用过程中,有时会产生很多疑惑,其中有朋友问小编:电脑怎么设置定时关机?其实Windows系统设置关机很简单,主要有下面两个方法! 演示机型:…

【学习打卡 Free-Excel 】Task1~2 数据源何而来_数据格式

free-excel 文章目录free-excel1 数据基本知识工作簿与工作表xls和xlsx单元格行列导入数据从文件导入数据从网页导入数据:中文编码:2 表格单元格数据类型excel错误提示数据统一添加符号数值转文本、文本转数值资源链接 Free excel_文字版Free excel&…

系分 - 案例分析 - 数据库设计(基本)

个人总结,仅供参考,欢迎加好友一起讨论 文章目录系分 - 案例分析 - 数据库设计(基本)数据库基础数据库设计规范化(范式)数据库事务并发控制典型例题题目描述参考答案数据库安全性技术视图物化视图存储过程触…

【练习】Day07

努力经营当下,直至未来明朗! 文章目录一、选择二、编程1. 不同路径2. 三角形最小路径和 [重点理解!!]答案1. 选择2. 编程普通小孩也要热爱生活! 一、选择 以下关于 Servlet 生命周期说法错误的是 ( ) A: Servlet 容器…

解构模块化区块链

干货:解构模块化区块链 在可扩展性方面,模块化区块链是区块链设计的最新范式。 模块化的概念起源于Layer1区块链Celestia,现在这个概念也逐渐被更多的人所关注,还有人甚至提出”模块化区块链将定义Web3创新的下一个十年“的口号…

java.sql.SQLException: ORA-28001: the password has expired

1、找到SQL Plus 运行 2、登录 请输入户名: sys as sysdba 输入口令:(sys用户的密码)3、以dba角色登入 SQL >connect as sysdba; 请输入户名: sys as sysdba 输入口令:(sys用户的密码)4、修改密码 SQ…

Flink:FlinkSql解析嵌套Json

日常开发中都是用的简便json格式,但是偶尔也会遇到嵌套json的时候,因此在用flinksql的时候就有点麻烦,下面用简单例子简单定义处理下 1,数据是网上摘抄,但包含里常用的大部分格式 { "afterColumns": {…

SpringBoot集成Elasticsearch7.4 实战(一)

在网上已经有好多关于Elasticsearch的介绍,就不在翻来覆去讲一些基本概念,大家感兴趣的可以自己去找一些资料巩固下。这次只为了顾及众多首次接触Elasticsearch,案例都讲的很浅显,还有就是受个人能力所限,各位读者发现…

大数据-hadoop-hdfs

Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度…

数据结构(3)线段树基础

活动 - AcWing 参考《算法竞赛进阶指南》-lyd 一、概述 1.简述、所需空间 线段树是一种基于分治思想的二叉树结构,用于区间上的信息统计。与树状数组相比,线段树是一种更通用的数据结构。 线段树每个节点代表一个区间。线段树具有唯一根节点&#x…

关于KDDockWidget源码修改和自定义

前言 前面的文章介绍过KDDockWidget的基本使用及示例,文章在这里: KDDockWidgets源码编译及安装 qml dockwidget窗口停靠 QML KDDockWidget 实现 tabwidget效果( 窗口可独立浮动和缩放) 今天主要记录一些在KDDockWidget源码中的…

来自元宇宙的声音:Chord Hero

这一集,我们邀请了 Chord Hero 的联合创始人兼行政总裁 Anthony Chau 来谈谈促使他加入 The Sandbox 元宇宙的原因以及即将在即将到来的游戏赛季推出的第一个项目。 请告诉我们更多关于 Chord Hero 的信息吧。 Chord Hero 通过一系列实体和数字产品让学习音乐变得有…

视图(view)

1、视图:(了解内容) 就是站在不同的角度去看待同一份数据。 视图是MySQL服务器中的一个对象,用于存储查询语句,目的的提高查询语句的使用效率,避免在多处地方重复性开发相同的查询语句。 - 将查询语句交给一…

Transformer学习笔记1

模型分类:GPT类型: auto-regressive(decoder模型,过去时刻的输出也是现在的输入,例如要得到y8还需要知道y1到y7,但不能使用y9,例如用于文本生成任务)GPTGPT2CTRLTransformer XLBERT类…

Docker 容器监控

目录 cAdvisor 安装cAdvisor 使用Prometheus监控cAdvisor cAdvisor暴露的Prometheus指标 容器指标 1. 文档: 2. 指标 硬件指标 1. 文档: 2. 指标: Node Exporter 安装Node Exporter 1. 启动容器,默认端口为9100 2. …