Linux用户密码策略

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

Linux用户密码的复杂度可以通过pam pam_cracklib module或pam_passwdqc module控制,两者不能同时使用. 个人感觉pam_passwdqc更好用.

/etc/login.defs密码策略

PASS_MAX_DAYS   99999     #密码的最大有效期, 99999:永久有期

PASS_MIN_DAYS   0          #是否可修改密码,0可修改,非0多少天后可修改

PASS_MIN_LEN    5          #密码最小长度,使用pam_cracklib module,该参数不再有效

PASS_WARN_AGE   7         #密码失效前多少天在用户登录时通知用户修改密码

pam_cracklib主要参数说明:

tretry=N:重试多少次后返回密码修改错误

difok=N:新密码必需与旧密码不同的位数

dcredit=N: N >= 0:密码中最多有多少个数字;N < 0密码中最少有多少个数字.

lcredit=N:小宝字母的个数

ucredit=N大宝字母的个数

credit=N:特殊字母的个数

minclass=N:密码组成(大/小字母,数字,特殊字符)

pam_passwdqc主要参数说明:

mix:设置口令字最小长度,默认值是mix=disabled。

max:设置口令字的最大长度,默认值是max=40。

passphrase:设置口令短语中单词的最少个数,默认值是passphrase=3,如果为0则禁用口令短语。

atch:设置密码串的常见程序,默认值是match=4。

similar:设置当我们重设口令时,重新设置的新口令能否与旧口令相似,它可以是similar=permit允许相似或similar=deny不允许相似。

random:设置随机生成口令字的默认长度。默认值是random=42。设为0则禁止该功能。

enforce:设置约束范围,enforce=none表示只警告弱口令字,但不禁止它们使用;enforce=users将对系统上的全体非根用户实行这一限制;enforce=everyone将对包括根用户在内的全体用户实行这一限制。

non-unix:它告诉这个模块不要使用传统的getpwnam函数调用获得用户信息,

retry:设置用户输入口令字时允许重试的次数,默认值是retry=3

密码复杂度通过/etc/pam.d/system-auth实施

如:

要使用pam_cracklib将注释去掉,把pam_passwdqc.so注释掉即可.

#password    requisite     /lib/security/$ISA/pam_cracklib.so retry=3 difok=1

password    requisite     /lib/security/$ISA/pam_passwdqc.so min=disabled,24,12,8,7 passphrase=3

password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow

#password    requisite     /lib/security/$ISA/pam_cracklib.so retry=3 difok=1

新密码至少有一位与原来的不同

PASS_MIN_DAYS参数则设定了在本次密码修改后,下次允许更改密码之前所需的最少天数。PASS_WARN_AGE的设定则指明了在口令失效前多少天开始通知用户更改密码(一般在用户刚刚登陆系统时就会收到警告通知)。

你也会编辑/etc/default/useradd文件,寻找INACTIVE和EXPIRE两个关键词:

INACTIVE=14

EXPIRE=

这会指明在口令失效后多久时间内,如果口令没有进行更改,则将账户更改为失效状态。在本例中,这个时间是14天。而EXPIRE的设置则用于为所有新用户设定一个密码失效的明确时间(具体格式为“年份-月份-日期”)。

显然,上述这些设定更改之后,只能影响到新建立的用户。要想修改目前已存在的用户具体设置,需要使用chage工具。

# chage -M 60 joe

这条命令将设置用户joe的PASS_MAX_DAYS为60,并修改对应的shadow文件。

你可以使用chage -l的选项,列出当前的账户时效情况,而使用-m选项是设置PASS_MIN_DAYS,用-W则是设置PASS_WARN_AGE,等等。chage工具可以让你修改特定账户的所有密码时效状态。

注意,chage仅仅适用于本地系统的账户,如果你在使用一个类似LDAP这样的认证系统时,该工具会失效。如果你在使用LDAP作为认证,而你又打算使用chage,那么,哪怕仅仅是试图列出用户密码的时效信息,你也会发现chage根本不起作用。

制定一项策略,定义多长时间一个密码必须进行更改,然后强制执行该策略,是非常不错的一个做法。在解雇了某个雇员后,口令时效策略会保证该雇员不可能在被解雇3个月后发现他的口令依然可用。即使系统管理员忽略了删除他的帐号,该帐号也会因密码时效策略而被自动锁定。当然,这一点并不能成为不及时删除该雇员帐号的理由,但是这个策略的确提供了一层额外的安全防护,尤其是在过去常常忽视及时清理帐号的情况下。

原文地址:https://www.cnblogs.com/fanweisheng/p/11108632.html

时间: 2024-08-04 21:10:23

Linux用户密码策略的相关文章

linux用户密码策略测试

1.linux普通用户默认密码策略: 用passwd修改用户密码,常常提示"BAD PASSWORD: it is based on a dictionary word".实际上linux要求的密码验证机制是在/etc/login.defs中规定最小密码字符数:同时还要受到/etc/pam.d/passwd的限定.但是在root用户下怎么设置都可以,可以不受验证机制的约束,即便出来"BAD PASSWORD: it is based on a dictionary word&

Linux 用户密码丢失找回方法

Linux 用户密码丢失找回方法: 我的CentOS 6.4是安装到virtualBox虚拟机上的,解决如下: 在开机启动的时候按键盘上的"E"键或者"ESC"键,会进入如下界面. 选择相应的内核,再次按"E",出现下图,选择第二项,再次按"E"键 3. 经过第二步,这个画面可以编辑,在信息的最后加"空格",直接输入数字的"1"(如图)或者键入"single"也行,回

修改linux用户密码

对于初学者来说,如何修改linux用户密码也不是件容易的事,其实非常简单,下面举例说明: 如果是以root身份登录,修改root密码.只要输入 passwd 就会出现: New password:  Retype new password:  按提示输入密码确认即可. 如果想更改其他用户密码,只要输入passwd. 对于初学者来说,如何修改linux用户密码也不是件容易的事,其实非常简单,下面举例说明: 如果是以root身份登录,修改root密码.只要输入 passwd 就会出现: New pa

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

由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度. 操作步骤如下,不会的同学可以参考: 操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处) PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添

关于linux系统密码策略的设置(转载)

由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度. 操作步骤如下,不会的同学可以参考: 操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处) PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添

字典法暴力破解Linux用户密码

Linux系列的很多操作系统是采用MD5加密用户密码的,加密的过程是单向的,所以要破解只能采用暴力破解法. 下面分享个程序来破解root用户密码. 程序会遍历字典文件中的每个密码,加密后和/etc/shadow中的密码匹配,如果相同则返回成功. #!/usr/bin/env python import crypt import sys import re dic = [ 'cookie', 'test', 'fuckyou' ] passwordfile = '/etc/shadow' def

Linux 用户密码与安全策略

用户及用户密码安全: linux和windows一样是用用户账户管理操作系统的. linux用户有两类: 1:系统用户 2:登陆用户系统用户是系统以特定的身份完成某些服务的账户,无法登陆.而登陆用户是我们平时用得最多的.登陆用户可分为两类 登陆用户: 1:超级用户 2:普通用户 超级用户就是root. 普通用户就是平时用来管理系统,可登陆的普通账户,普通账户的权限是受到权限的,登陆的普通账户只能做权限内的事情.Linux操作系统不以用户名来识别用户,是以UDI,以用户标识来识别用户的.在cent

Linux ——用户密码相关设置

添加用户 useradd your_name 添加组 groupadd your_group Linux中修改用户密码 如果是root用户,直接输入passwd回车,输入新密码 如果是其他用户,输入passwd username然后回车,输入新密码 设置su或sudo,不需要输入密码登陆 可以在/etc/sudoers文件中进行更改,首先查看sudoers文件的权限 #ll /etc/sudoers -r--r----- 1 root root 745  2月 11  2014 /etc/sud

零基础Linux教程第四课“SSH密匙登录Linux,WinSCP教程,修改Linux用户密码”

Linux SSH登录方式 使用密码登录 这种方式最为原始,也是常见的SSH登录Linux的验证方法,但其安全性不高.如果你的Linux系统设置的登录密码简单,黑客们就可以利用扫描加字典的破译方式获取你的密码,因此,为了Linux系统的安全性,我推荐使用第二种方式登录Linux 使用密匙登录 用密钥的验证方式,需要自己创建一对私钥,并把共有的共钥放远程Linux主机上.当需要连接到远程Linux主机时,客户端软件就会向远程Linux主机发送请求,请求使用私钥进行验证.远程Linux主机收到请求之