Linux系统设置复杂密码策略方法
用户帐号管理是系统管理员最重要的工作之一。而密码安全是系统安全中最受关注的一块。本文将为大家介绍如何在 Linux 上设置系统用户密码复杂度策略。
假设你已经在你的 Linux 系统上使用了 PAM (Pluggable Authentication Modules,插入式验证模块),因为这些年所有的 Linux 发行版都在使用它。
一、准备工作
安装 PAM 的 cracklib 模块,cracklib 能提供额外的密码检查能力。
Debian、Ubuntu 或 Linux Mint 系统上:
$ sudo apt-get install libpam-cracklib
CentOS、Fedora、RHEL 系统已经默认安装了 cracklib PAM 模块,所以在这些系统上无需执行上面的操作。
为了强制实施密码策略,我们需要修改 /etc/pam.d 目录下的 PAM 配置文件。一旦修改,策略会马上生效。
注意:此教程中的密码策略只对非 root 用户有效,对 root 用户无效。
二、禁止使用旧密码
找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。
Debian、Ubuntu 或 Linux Mint 系统上:
$ sudo vi /etc/pam.d/common-password
password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5
CentOS、Fedora、RHEL 系统上:
$ sudo vi /etc/pam.d/system-auth
password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5
三、设置最短密码长度
找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果你的密码同时用上了这4种类型的符号,并且你的 minlen 设为10,那么最短的密码长度允许是6个字符。
Debian、Ubuntu 或 Linux Mint 系统上:
$ sudo vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3
CentOS、Fedora、RHEL 系统上:
$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10
四、设置密码复杂度
找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)。
Debian、Ubuntu 或 Linux Mint 系统上:
$ sudo vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
CentOS、Fedora、RHEL 系统上:
$ sudo vi /etc/pam.d/system-auth
password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
五、设置密码过期期限
编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:
$ sudo vi /etc/login.defs
PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7
这些设置要求用户每6个月改变他们的密码,并且会提前7天提醒用户密码快到期了。
如果你想为每个用户设置不同的密码期限,使用 chage 命令。下面的命令可以查看某个用户的密码限期:
$ sudo chage -l xmodulo
Last password change : Dec 30, 2013 Password expires :
never Password inactive : never Account expires :
never 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
默认情况下,用户的密码永不过期。
下面的命令用于修改 xmodulo 用户的密码期限:
$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo
上面的命令将密码期限设为2014年6月3日。另外,修改密码的最短周期为5天,最长周期为90天。密码过期前14天会发送消息提醒用户,过期后帐号会被锁住30天。
设置完后,验证效果如下:
相关文章
linux/ubuntu系统怎么安装百度网盘? linux百度网盘安装图文教程
linux/ubuntu系统怎么安装百度网盘?linux系统中想要安装百度网盘,该怎么安装呢?下面我们就来看看linux百度网盘安装图文教程2023-06-02新补丁发布! 修复Linux 6.3 更新导致 XFS 元数据故障
在升级到 6.3.3 维护版本更新之后,基于 XFS 格式的服务器就出现不断崩溃的问题现在已经找到原因,并发布新的补丁,详细请看下文介绍2023-05-30linux如何导出文件到本地电脑? Linux命令导出文件的技巧
linux如何导出文件到本地电脑?linux系统中的文件,想要导出道本地,该怎么操作呢?下面我们就来看看Linux命令导出文件的技巧2023-05-17- 这篇文章主要介绍了Linux系统下载(超全镜像整理下载),需要的朋友可以参考下2023-05-07
深度 deepin 操作系统 20.9今日发布: Qt 版本升级至 5.15.8
深度 deepin 操作系统 20.9今日发布,这个版本的核心目标是:为用户提供稳定的系统运行版本,详细更新内容请看下文介绍2023-04-18Linux Lite 6.4今日发布:基于 Ubuntu 22.04.2 LTS/原生应用支持 Zstd
Linux Lite 6.4今日发布,引入了诸多新功能 / 新特性,升级了相关组件,并优化了性能,详细请看下文介绍2023-04-02Linux 6.3发布第4个候选版本: diffstat占比超过50%
Linux6.3第4个候选版本发布,这意味着 6.3 的开发周期已经走过了一半路程,下面我们就来看看这个版本的公告内容2023-03-27linux无法识别ntfs格式U盘怎么办? 解决linux不识别nfst格式u盘问题技巧
linux无法识别ntfs格式U盘怎么办?在Linux系统中插入ntfs格式的u盘是,无法识别,下面我们就来看看解决linux不识别nfst格式u盘问题技巧2023-02-28linux怎么调整swap大小? linux扩容swap分区的技巧
linux怎么调整swap大小?linux系统中想要扩容swap分区,该怎么操作呢?下面我们就来看看linux扩容swap分区的技巧2023-02-28深度操作系统 deepin V23 Alpha 2 正式发布 预装跨端协同功能
深度操作系统 deepin V23 Alpha 2 正式发,该版本是 V23 的阶段性版本之一,deepin V23 Alpha 2 在主打的行云设计上持续升级,同时支持系统主题高级定制化设置,详细请看下2023-02-09
最新评论