Linux基础知识之管理用户密码

avatar
作者
猴君
阅读量:0

往期系列内容回顾:

Linux基础知识之Shell命令行及终端中的快捷键 

Linux基础知识之man手册页_man 手册页-CSDN博客

Linux基础知识之Linux文件系统权限-CSDN博客

Linux基础知识之使用 Shell 扩展匹配文件名-CSDN博客

  1. shadow 密码和密码策略

用户密码是Linux用户登录的传统凭据之一. 以前密码保存在 /etc/passwd 文件,所有用户皆可读,之后将密码保存到只有 root 可读的 /etc/shadow 文件中,文件格式如下:

[student@workstation ~]$ sudo grep student /etc/shadow student:$6$mMzsPCHs9fkLFF4E$0ZH52HA8QGcAoYspzaXOyooRxCPTj7ct90Pfgl4XkYDkrOgEWVFAPi.tDZj51DAN8NoLuBkc3Bj3MaxJWqrcV0:19860:0:99999:7:::

这段 shadow 密码的格式是 Linux 系统中存储密码的方式之一。它表示用户"student"的密码信息。这个 shadow 中包含的字段分别为:

  1. 密码的验证

用户登录时,使用 salt 组合用户 password,然后进行哈希加密,之后与 shadow 对应用户的散列值比对,一致则密码验证通过。

  1. 配置密码生命周期

chage (change age)命令用以修改密码生命周期[MISSING IMAGE: ,  ]

useradd sysadmin05 chage -l sysadmin05 chage -m 0 -M 90 -W 7 -I 14 sysadmin05 chage -l sysadmin05 # -m:最小生命周期 # -M:最大生命周期 # -W:警告周期 # -l:宽限周期

  • 示例二:假设您在红帽服务器上管理用户密码策略。

cloudadmin10 用户是系统中的新用户,您要设置自定义密码期限策略。您希望账户到期时间设置即日起 30 天,可以使用以下命令:

[root@workstation ~]# useradd cloudadmin10 [root@workstation ~]# chage -l cloudadmin10 [root@workstation ~]# date +%F [root@workstation ~]# date -d "+30 days" +%F [root@workstation ~]# chage -E $(date -d "+30 days" +%F) cloudadmin10 [root@workstation ~]# chage -l cloudadmin10 | grep "Account expires"


 

chage -d 0 username # 要求 username 用户下次登录必须修改密码 chage -l username # 显示 username 用户密码生命周期详情 chage -E 2024-11-01 username # 定义密码过期时间


 

  • 另外也可以在 /etc/login.defs 中定义用户密码生命周期,修改此文件不会影响旧的用户,只会影响更改后的新用户。

选项

作用

PASS_MAX_DAYS

密码最大生命周期

PASS_MIN_DAYS

密码最小生命周期

PASS_WARN_AGE

密码警告周期

PASS_MIN_LEN

密码最小长度

更多关于用户的配置可以查看 man 手册 login.defs(5)

man 5 login.defs

  1. 非登录 shell

当有效的用户的账户不需要登录系统,可以将其登录 shell 设置为 nologin shell。例如系统服务账号,并不需要登录操作系统示例:

[root@workstation ~]# usermod -s /sbin/nologin newapp [root@workstation ~]# su - newapp

值得一提的是,nologin 可以防止以交互式使用系统,但不会阻止所有访问。如果用户使用用户密码进行身份验证,他们有时可以通过身份验证,并使用Web 应用、文件传输程序或邮件读取程序等应用上传或检索文件。

  1. 限制登录

  • 使用 usermod -L 可以锁定用户, usermod -U 解锁用户
  • 如果用户在特定日期从公司离职,您可以通过一个 usermod 命令锁定账户并使其过期。该日期必须是距离 1970-01-01 的天数,或者使用 YYYY-MM-DD 格式。
 [root@workstation ~]# usermod -L -e 0 student  [root@workstation ~]# ssh student@localhost Your account has expired; please contact your system administrator. Connection closed by ::1 port 22  [root@workstation ~]# chage -l student Last password change : May 17, 2024 Password expires : never Password inactive : neverAccount expires : Jan 01, 1970 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7

— Linux文章推荐 —

【资料领取】200个Linux常用命令手册

《鸟哥Linux私房菜》全新完整中文版PDF

40 个简单又有效的 Linux Shell 脚本示例

linux运维必备,100道常见面试题

超强linux学习笔记,值得一看(附PDF下载)

红帽认证有什么优势?速看本文

5 种 Linux 安装包管理工具中文手册!抓紧看!

END

公众号:厦门微思网络

始于2002年,专业IT认证培训22年,面向全国招生!

微思-主要课程有:

*网络技术:华为HCIA/ HCIP/HCIE;思科CCNA/CCNP/CCIE

*Linux技术:红帽 RHCE/RHCA

*K8S&容器:CKA/CKS

*数据库:ORACLE OCP/ OCM ;MySQL ;达梦数据库

*虚拟化:VMware VCP/VCAP

*安全认证:CISP体系/CISSP/ CISA;CCSK;CISAW体系

*管理类:PMP 项目管理;软考中/高项;ITIL体系;Togaf

其他课程如:ACP;Azure...
———————————————

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!