linux下关于密码复杂度设置

在linux下设置密码复杂度办法:

(1)修改/etc/login.defs文件

PASS_MAX_DAYS   90  #密码最长过期天数
PASS_MIN_DAYS   80  #密码最小过期天数
PASS_MIN_LEN    10  #密码最小长度
PASS_WARN_AGE   7   #密码过期警告天数

 

(2)修改/etc/pam.d/system-auth文件

找到 password requisite pam_cracklib.so这么一行替换成如下:

password  requisite pam_cracklib.so retry=5  difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict

参数含义:

尝试次数:5  最少不同字符:3 最小密码长度:10  最少大写字母:1 最少小写字母:3 最少数字:3 密码字典:/usr/share/cracklib/pw_dict

 

注意:修改后你可能会立即测试:

useradd  test

passwd test

感觉不起作用,呵呵。这是因为你现在是以root身份运行的。退出root身份后,用test登录修改密码试试看。

是不是起作用了呢?应该是起作用的。

Linux系统中,用户密码复杂度可以通过设置密码策略来实现。密码策略通常包括以下几个方面: 1. 密码长度:密码长度应该设置为足够长,一般建议为8位以上。 2. 复杂度要求:密码应该包含大小写字母、数字和特殊字符等多种类型的字符。 3. 密码历史:系统应该记住之前若干个密码,以免用户反复使用相同的密码。 4. 密码过期:密码应该定期过期,让用户强制更换密码。 在Linux系统中,可以通过修改/etc/login.defs文件来设置密码策略。例如,可以设置密码长度为8位,要求包含数字和特殊字符,并且密码历史为5个密码密码过期时间为90天,可以通过以下命令实现: ``` # 密码长度 PASS_MIN_LEN 8 # 复杂度要求 # dcredit表示数字字符 # ucredit表示大写字母 # lcredit表示小写字母 # ocredit表示特殊字符 # minclass表示至少包含几种字符 # maxrepeat表示不允许重复字符的个数 # maxsequence表示不允许连续字符的个数 # mindiff表示必须与之前密码有几个字符不同 # minlen表示密码长度至少为几个字符 # difok表示是否允许新密码与旧密码相同 # reject_username表示密码不能与用户名相同 # enforce_for_root表示是否强制root用户也要满足密码策略 # 详细说明可以查看man pam_passwdqc PASS_MAX_DAYS 90 PASS_MIN_CLASS_DIGIT 1 PASS_MIN_CLASS_ALPHA 1 PASS_MIN_CLASS_OTHER 1 PASS_MAX_REPEAT_CHARS 2 PASS_MAX_SEQUENCE_CHARS 3 PASS_MIN_DIFF_CHARS 3 PASS_USE_CRACKLIB yes # 密码历史 #表示之前5个密码不能重复使用 PASSWD_HISTORY 5 # 密码过期 # 表示密码过期前30天提醒用户更改密码 PASS_WARN_AGE 30 ``` 设置完成后,需要重启系统或重新加载PAM模块才能使设置生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值