linux修改密码策略

linux修改密码策略对于用户账户的管理是系统管理员最重要的工作之一。尤其是,对于任何自称安全的linux系统,最受关心的应该是密码安全问题。在本教程中,我将介绍如何在linux上设置严密的密码策略。我假设你的linux系统是最近的linux发行版,那么你正在使用的应该是PAM(可插拔认证模块)。**1.准备**安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。在Debin,Ubuntu或者LinuxMint使用命令:sudoapt-getinstalllibpam-crackli

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

对于用户账户的管理是系统管理员最重要的工作之一。尤其是,对于任何自称安全的linux系统,最受关心的应该是密码安全问题。在本教程中,我将介绍如何在linux上设置严密的密码策略。

我假设你的linux系统是最近的linux发行版,那么你正在使用的应该是PAM(可插拔认证模块)。

**

1.准备

**
安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。
在Debin,Ubuntu或者Linux Mint使用命令:
sudo apt-get install libpam-cracklib
这个模块在CentOS,Fedora或者RHEL默认安装了。所以在这些系统上就没有必要安装了。

如要强制执行密码策略,我们需要修改/etc/pam.d这个与身份验证相关的文件。这个文件会在修改后立即生效。

请注意,本教程中的密码规则只有在非root用户更改密码时强制执行。

2.避免重复使用旧密码

寻找同时包含“password”和”pam_unix.so”的行,然后再这行后面加上“remember=5”。这将防止5个最近使用过的密码被用来设置为新密码(通过将它们存放在/etc/security/opasswd文件中)。
在Debin,Ubuntu或者Linux Mint使用命令:

sudo vi /etc/pam.d/common-password
修改内容:

password    [success=1 default=ignore]    pam_unix.so obscure sha512 remember=5  

在Fedora,CentOS或RHEL使用命令:

sudo  vi  /etc/pam.d/system-auth  

修改内容:

password   sufficient   pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5  

3.设置最小密码长度

寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“minlen=10”。这将强行设置密码的最小密码长度为10位,其中<# of types>多少个不同类型的字符在密码中使用。有四种符号类型(大写、小写、数字和符号)。所以如果使用所有四种类型的组合,并指定最小长度为10,所允许的简单密码部分将是6位。
在Debin,Ubuntu或者Linux Mint使用命令:

sudo  vi  /etc/pam.d/common-password  

修改内容:

password   requisite    pam_cracklib.so retry=3 minlen=10 difok=3  

在Fedora,CentOS或RHEL使用命令:

sudo  vi  /etc/pam.d/system-auth  

修改内容:

password   requisite   pam_cracklib.so retry=3 difok=3 minlen=10  

4.设置密码复杂度

寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。
在Debin,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  

在Fedora,CentOS或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 

5.设置密码的有效期

要设置当前密码的最大有效期,就修改/etc/login.defs文件的下列变量:

 sudo  vi  /etc/login.def  

修改内容:

PASS_MAX_DAYS     150  
PASS_MIN_DAYS     0  
PASS_WARN_AGE     7  

这将迫使每一位用户每半年更改一次他们的密码,并且在密码过期之前七天发送密码过期还有几天到等等的警告信息给用户(到最后甚至在用户开机登录时强制用户更改密码,不然无法进入系统(个人在linux程序设计中看到的知识,非原作者观点))。如果你想基于不同的用户使用密码期限功能,那就使用chage命令。要查看针对特别用户的密码过期策略使用的命令如下:

 sudo  chage -l  xmodulo   

注意:xmodule是原作者在linux系统中使用的用户名。

默认设置中,用户的密码是不会过期的。
为用户的xmodulo更改有限期限的命令如下:

 sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 用户名

以上命令将密码设置为在2014年6月30日过期。并且,密码更改时间间隔的最大/最小数量分别为5和90。在一个密码过期后,这个账号将被锁30天。在密码过期前14天,警告信息就会发送到对应的账户。

参数详解:
LINUX密码策略设置指引
LINUX设置密码复杂度的文件/etc/pam.d/system-auth
密码复杂度
找到同时有 “password” 和 “pam_cracklib.so” 的那行,
尝试密码输错次数(retry), 密码不同字符次数(difok), 密码最短长度(minlen),必须至少包含大写字母次数(ucredit),必须至少包含小写字母次数(lcredit),必须至少包含数字次数(dcredit)和必须至少包含标点符号次数(ocredit),enforce_for_root
表示对root用户生效。
代码如下:

 $ sudo vi /etc/pam.d/system-auth

修改:

password    requisite     pam_cracklib.so try_first_pass retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1 enforce_for_root

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

$ sudo vi /etc/pam.d/system-auth 

修改如下:

 password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5

设置密码过期期限
编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量密码最大有效期(PASSMAXDAYS),两次修改密码的最小间隔时间(PASSMINDAYS),密码过期前多少天开始提示(PASSWARNAGE) 如下所示:
代码如下:
$ sudo vi /etc/login.defs

PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196745.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入理解C++11_c++ string char

    深入理解C++11_c++ string char1.语法decltype(expression)decltype(declaretype)用于查询表达式的类型,即编译时期进行自动类型推导。如上所示,该语句返回expression表达式的类型。注意:decltype仅仅是查询表达式的类型,并不会对表达式求值。2.推导规则1)如果expression是一个不被括号()包围的表达式,或者是一个类成员访问表达式,或者是一个单独的变量,那么decltype(exp)的类型就和exp一致,这是最普遍最常见的情况。2)

    2025年10月12日
    2
  • 图像语义分割之FCN和CRF

    图像语义分割之FCN和CRF前言(呕血制作啊!)前几天刚好做了个图像语义分割的汇报,把最近看的论文和一些想法讲了一下。所以今天就把它总结成文章啦,方便大家一起讨论讨论。本文只是展示了一些比较经典和自己觉得比较不错的结构,毕竟这方面还是有挺多的结构方法了。介绍图像语义分割,简单而言就是给定一张图片,对图片上的每一个像素点分类从图像上来看,就是我们需要将实际的场景图分割成下面的分割图:不同颜色代表不同类别。经过我阅读“

    2022年8月21日
    7
  • comboBox的SelectedValue为null

    comboBox的SelectedValue为null把自定义对象通过 comboBox Add 自定义对象 方法添加到 comboBox 中后 再分别制定其 DisplayMembe 和 ValueMember 想的到选择的值 使用 SelectedValu 得到 null 要使用 自定义对象类型 comboBox1 SelectedItem Id 来取得当前选择的值 如果是通过 combBox DataSource 来指定的 combBox 的数据源 I

    2025年6月24日
    1
  • idea2021永久激活码【2021.8最新】「建议收藏」

    (idea2021永久激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
    199
  • asp.net gridview_net core mvc 怎么做增删改查

    asp.net gridview_net core mvc 怎么做增删改查在ASP.NETMVC3中,WebGrid是 Web.Helpers下的新的类,使用WebGrid可以减小我们的代码量,本篇先简单的看下WebGrid的使用方法,包括它的分页、排序功能以及样式的设置等。我们还是从留言表读取数据,并使用WebGrid来展示我们的留言。WebGrid大体原理就是将数据集合组织输出一个HTML表格,使用WebGrid我们先创建一个

    2022年10月5日
    2
  • BACnet协议_bip协议

    BACnet协议_bip协议一、什么是BACnet?BACnet,BuildingAutomationandControlnetworks的简称,即楼宇自动化与控制网络。是用于智能建筑的通信协议。一般楼宇自控设备从功

    2022年8月4日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号