0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux系统设置用户密码规则(复杂密码策略)方法

马哥Linux运维 来源:马哥Linux运维 2024-12-07 09:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux系统下的用户密码的有效期

可以修改密码可以通过login.defs文件控制。设置密码过期期限(默认情况下,用户的密码永不过期。)
编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:

sudo vi /etc/login.defs
PASSMAXDAYS 150 
PASSMINDAYS 0 
PASSWARNAGE 7
# 这些设置要求用户每6个月改变他们的密码,并且会提前7天提醒用户密码快到期了。

说明:
Password aging controls:

PASS_MAX_DAYS Maximum number of days a password may be used.
(密码可以使用的最大天数。)
PASS_MIN_DAYS Minimum number of days allowed between password changes.
(密码更改之间允许的最小天数。一般不要设置)
PASS_MIN_LEN Minimum acceptable password length.
(可接受的最小密码长度。)
PASS_WARN_AGE Number of days warning given before a password expires.
(密码过期前发出警告的天数。)

# 默认值
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

# 建议值
PASS_MAX_DAYS   90
PASS_MIN_DAYS   0
PASS_MIN_LEN    6
PASS_WARN_AGE   7

可以通过sed命令设置:

sed -r -i 's/(PASS_MAX_DAYS)s+([0-9]+)/1 90/' /etc/login.defs
以上将 PASS_MAX_DAYS 99999 设置为 PASS_MAX_DAYS 90(密码有效期90天)

sed -r -i 's/(PASS_MIN_LEN)s+([0-9]+)/1 13/' /etc/login.defs
以上将 PASS_MIN_LEN 5 设置为 PASS_MIN_LEN 13(密码字符长度13位)

Linux系统下的用户密码的复杂度规则

用户密码复杂度规则设定,需要通过/etc/pam.d/system-auth文件实施(针对的是普通用户状态下修改密码会生效,root用户状态下无效),centos6中默认是通过pam_cracklib.so模块控制,(在CentOS 7上实现密码复杂度策略设置,主要是使用PAM pwquality模块完成):

[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
   
[root@localhost ~]# vim /etc/pam.d/system-auth
将文件中的下面两行:
password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
改为:
password    requisite     pam_cracklib.so try_first_pass retry=3 type= minlen=8 ucredit=-2 lcredit=-4 dcredit=-1 ocredit=-1
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5

上面文件中参数分别说明设置密码的时候要遵循下面的规则:

retry=3 定义登录/修改密码失败时,可以重试的次数;
type=xxx 当添加/修改密码时,系统给出的缺省提示符是什么,用来修改缺省的密码提示文本。默认是不修改的,如上例。
minlen=8 定义用户密码的最小长度为8位
ucredit=-2 定义用户密码中最少有2个大写字母 (数字为负数,表示至少有多少个大写字母;数字为正数,表示至多有多少个大写字母;下面同理)
lcredit=-4 定义用户密码中最少有4个小写字母
dcredit=-1 定义用户密码中最少有1个数字
ocredit=-1 定义用户密码中最少有1个特殊字符(除数字、字母之外)
remember=5 修改用户密码时最近5次用过的旧密码就不能重用了

除了上面的几个参数,还可以设定下面的参数规则

difok=N 此选项用来规定新密码中必需有N个字符与旧密码不同。如果新密码中有1/2以上的字符与旧密码不同时,该新密码就会被接受。
difignore=N 此选项用来设定在difok之前收到多少个字符时,difok设置会被忽略,缺省为23。
minclass=N 此选项用来规定新密码中的字符类别的最小数目,字符一般有四种类别:数字、大写字母、小写字母,以及特殊字符。

禁止使用旧密码

在 /etc/pam.d/system-auth 里找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

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个字符。

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)。

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

CentOS 7通用规则设置示例:

# 以root用户登录系统
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
vim /etc/pam.d/system-auth

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=10 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

retry=3 定义登录/修改密码失败时,可以重试的次数;

minlen=12 密码最小长度为8个字符。

lcredit=-1 密码应包含的小写字母的至少一个

ucredit=-1 密码应包含的大写字母至少一个

dcredit=-1 将密码包含的数字至少为一个

ocredit=-1 设置其他符号的最小数量,例如@,#、! $%等,至少要有一个

enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。

示例:password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=13 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

链接:https://www.cnblogs.com/xiongzaiqiren/p/17027924.html

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217990

原文标题:Linux系统设置用户密码规则(复杂密码策略)方法

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    路由器TACACS+账号登录时经常报用户密码错误的问题分析

    某地M6000-S开启TACACS+账号登录认证后,发现设备登录经常会上报用户密码错误,过一段时间才恢复正常。
    的头像 发表于 11-14 09:55 215次阅读
    路由器TACACS+账号登录时经常报<b class='flag-5'>用户</b><b class='flag-5'>密码</b>错误的问题分析

    电科网安亮相2025物联网密码应用论坛与2025密码产业太湖论坛

    太湖之滨,智联聚势。近日,2025物联网密码应用论坛与2025密码产业太湖论坛在江苏无锡相继举办,中电科网络安全科技股份有限公司应邀出席,携多项核心技术成果与行业前瞻见解精彩亮相,全面展示其在密码技术创新与产业实践中的硬核实力。
    的头像 发表于 11-11 16:48 991次阅读

    为什么无法使用buildroot 设置“使用密码登录”的?

    无法使用 buildroot 设置“使用密码登录”的
    发表于 08-29 07:21

    数字认证多款密码产品成功适配龙架构

    近日,北京数字认证有限公司(以下简称“北京CA”)密码服务管理平台、数据库加密与访问控制系统、文件加密与访问控制系统、服务器密码机等多款密码
    的头像 发表于 08-22 14:18 822次阅读

    inpad101s设置里的初始密码是多少?

    inpad101s设置里的初始密码是多少
    发表于 08-05 08:26

    树莓派默认密码指南:新设置、更改方法及安全建议!

    树莓派如今已不再设有“默认”密码,从较新版本的树莓派操作系统(从2022年的树莓派操作系统Bullseye版本起)起,就要求用户在初始设置
    的头像 发表于 07-04 15:27 3310次阅读
    树莓派默认<b class='flag-5'>密码</b>指南:新<b class='flag-5'>设置</b>、更改<b class='flag-5'>方法</b>及安全建议!

    东进技术发布《后量子密码技术白皮书(2025版)》

    ,介绍了中美两国后量子密码发展现状,重点阐述东进后量子密码策略,旨在为行业提供有益的参考和实践指引。后量子密码技术:开启信息安全新时代后量子密码
    的头像 发表于 07-02 10:38 993次阅读
    东进技术发布《后量子<b class='flag-5'>密码</b>技术白皮书(2025版)》

    兆芯亮相2025商用密码展暨密码应用与创新发展大会

    近日,2025商用密码展暨密码应用与创新发展大会在上海世博展览馆拉开帷幕。大会期间,兆芯、上海CA、联和东海共同带来“芯密全栈密码服务平台解决方案”,着力为企业及机构提供更安全、更灵活、更具性价比的
    的头像 发表于 06-14 15:11 1339次阅读

    Linux系统更改系统用户密码,RK3568工控主板演示

    教大家介绍在更换用户名和修改密码方法,此方法不适用于Buildroot系统。使用触觉智能RK3568工控主板(型号为IDO-SBC3528
    的头像 发表于 04-02 15:20 1372次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统</b>更改<b class='flag-5'>系统</b><b class='flag-5'>用户</b>与<b class='flag-5'>密码</b>,RK3568工控主板演示

    家里wifi密码忘了该怎样找回密码

    面对家中Wi-Fi密码遗忘的尴尬境地,不少人都曾有过这样的经历:拿着手机或电脑,站在路由器旁,却因不记得密码而无法顺利连接网络。这种情况虽然常见,但解决起来并不复杂。本文将详细介绍几种找回
    的头像 发表于 03-05 11:06 9594次阅读
    家里wifi<b class='flag-5'>密码</b>忘了该怎样找回<b class='flag-5'>密码</b>

    如何给软件上密码锁?

    的访问,确保您的私人信息不被窥探。本文将详细介绍如何在不同的操作系统和设备上为软件设置密码锁,以及一些额外的安全建议,帮助您全面提升数字生活的安全性。以下是在安卓和iOS设备上给软件上密码
    的头像 发表于 02-27 10:13 7571次阅读

    禁止使用root用户通过ssh远程登录Linux

    、为普通用户rain设置密码 注意:密码长度应该不少于8位,包括字母大小写、数字和特殊符号,且不包含用户名     passwd rain
    的头像 发表于 12-21 16:25 2520次阅读
    禁止使用root<b class='flag-5'>用户</b>通过ssh远程登录<b class='flag-5'>Linux</b>

    高手Linux运维管理必备工具大全

    一、统一账号管理 1.LDAP 统一管理各种平台帐号和密码,包括但不限于各种操作系统(Windows、Linux),Linux系统sudo集
    的头像 发表于 12-18 10:03 953次阅读

    NAS重置密码攻略来袭,让你告别‘密码焦虑’!

    你是否曾遇到过这样的尴尬场景:当你登录某个账号时,突然发现自己的脑子像是被格式化了一样,一片空白。好不容易凭感觉输入了几组可能的密码组合,结果系统无情地吐出了“密码错误”的提示。 更让人抓狂
    的头像 发表于 12-11 15:29 2004次阅读
    NAS重置<b class='flag-5'>密码</b>攻略来袭,让你告别‘<b class='flag-5'>密码</b>焦虑’!

    PostgreSQL将不再支持MD5密码

    ,PostgreSQL 中的 MD5 密码散列很容易受到传递散列攻击,即知道用户名和散列密码就足以进行身份验证。v10 中添加的 SCRAM-SHA-256 方法不存在这些问题,被认为
    的头像 发表于 12-10 16:14 738次阅读