对于用户账户的管理是系统管理员最重要的工作之一。尤其是,对于任何自称安全的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

linux修改密码策略相关推荐

  1. Linux修改密码成功,却无法登录

    项目场景: Linux修改密码成功,却无法登录 问题描述 等保服务器密码过期后,修改密码,登录显示密码错误,后台vnc修改密码后,新密码无法登录 使用passwd修改密码 [root@localhos ...

  2. Linux修改密码(强制修改)

    Linux修改密码用 passwd 命令 ## 通过 su 指令进入到root账号下##修改root用户的密码,可以不输入root用户名 [root@localhost ~]# passwd Chan ...

  3. Linux 修改密码的两种方式

    Linux 修改密码的两种方式 1.直接进行修改 2.使用 echo 进行修改 1.直接进行修改 密码需要输入两次进行确认. 对用户"zhangyan"进行密码修改,改为" ...

  4. Centos中mysql修改密码策略并修改密码

    1.获取初始密码 vim /var/log/mysqld.log 2.修改密码 (注:只有修改初始密码后才可以进行下一步操作) ALTER USER 'root'@'localhost' IDENTI ...

  5. linux安装mysql5.7(修改密码策略)

    查看mysql 是否安装 卸载mysql rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps 卸载完毕后,查看 安装命令 wget http://repo.my ...

  6. linux用户密码策略求图,Linux用户密码策略

    Linux用户密码的有效期,是否可以修改密码可以通过login.defs文件控制.对login.defs文件修只影响后续建立的用户,如果要改变以前建立的用户的有效期等可以使用chage命令. Linu ...

  7. 关于linux系统密码策略的设置

    由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度. 操作步骤如下,不会的同学可以参考: 操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处 ...

  8. Linux设定密码策略

    先讲怎么使用,后面有理论教程,先知其然再知其所以然 1. 禁止使用旧密码 vi /etc/pam.d/system-auth 找到同时有 "password" 和 "pa ...

  9. 麒麟linux修改密码,麒麟堡垒机密码定期修改手册

    1.堡垒机设置部分 自动修改密码可以为Windows系统.Linux系统.Unix系统进行密码托管,并且按运维相关要求进行口令强度和周期的修改. 堡垒机上设置一台设备自动修改密码按如下步骤: (1)设 ...

最新文章

  1. 【译】用图表展示未知----通向报表服务的阶梯系列(五)
  2. oracle判断一个字符是否是数字
  3. 组策略禁止自动锁定计算机,如何在Windows 10中禁用自动锁定
  4. php实现 明明的随机数
  5. 元宇宙iwemeta:互联网行业年底清算,税收优惠门槛抬高,阿里巴巴多交41亿税款
  6. [云炬创业基础笔记]第十一章创业计划书测试14
  7. linux爬365租房没有数据,新手求助,LINUX下安装11G不能MOUNT数据库
  8. Java Agent的隔离实现以及卸载时一些坑
  9. 东北电力大学计算机专业几本,东北电力大学是几本?东北电力大学怎么样?
  10. 汽车电子知识篇(十二)-汽车域控制器主芯片选型
  11. 服务注册中心 eureka 搭建
  12. [Nikon D80]樱花盛开的校园
  13. MySQL 普通索引和唯一索引的区别详解
  14. 年会尽头是闲鱼!超11万人在闲鱼转卖年会奖品
  15. 织梦根目录感染abc.php,织梦SEO优化:织梦dedecms根目录下robots.txt文件设置详解! - 张俊SEO...
  16. java后台开发工作职责_JAVA后台开发岗位职责
  17. Oracle下载和安装教程
  18. 商品管理系统——Java实现
  19. 哪些软件可以做国外问卷调查
  20. 如何利用 HBuilderX 制作图文混排的网页

热门文章

  1. 把握现在,我就此启航
  2. 全文同音文言文——智侄治蛭
  3. java封装函数_关于java中函数功能的封装
  4. 图形类 java_用java编写一个图形类,该类具有长和高属性,具有求面积的方法
  5. CGerberDoc* GetDocument() const; 错误
  6. metricbeat的使用
  7. js屏蔽键盘退格键(backspace或者叫后退键)1
  8. Windows 卡顿问题整理
  9. 电信行业收入疏漏点稽核的原则与方法【转】
  10. 保研 文书制作:简历,个人陈述注意事项