https://blog.csdn.net/longfeizzu/article/details/101377584
查看密码策略设置
cat /etc/login.defs|grep PASS
centos设置密码复杂度
Centos 系统安全加固
http://www.360doc.com/content/15/0205/13/21665131_446437188.shtml
CentOS操作系统密码复杂度策略设置
linux 修改密码时不能重复前n次使用过的
https://blog.csdn.net/weixin_40720226/article/details/95975981
Centos 7 设置密码策略步骤记录
1.查看原始的密码策略
[root@bogon ~]# cat /etc/pam.d/system-auth#%PAM-1.0# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth required pam_env.soauth sufficient pam_unix.so nullok try_first_passauth requisite pam_succeed_if.so uid >= 1000 quiet_successauth required pam_deny.soaccount required pam_unix.soaccount sufficient pam_localuser.soaccount sufficient pam_succeed_if.so uid < 1000 quietaccount required pam_permit.sopassword requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtokpassword required pam_deny.sosession optional pam_keyinit.so revokesession required pam_limits.so-session optional pam_systemd.sosession [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uidsession required pam_unix.so
[root@bogon ~]# cat /etc/login.defs|grep PASS# 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 99999PASS_MIN_DAYS 0PASS_MIN_LEN 5PASS_WARN_AGE 7
2.备份原始密码策略文件
[root@bogon ~]# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak.1009
3.编辑文件,设置新的密码策略
vim /etc/pam.d/system-auth
找到包含pam_pwquality.so模块的行,将原有行注释并修改为如下的新配置,密码长度最少12位,至少包含一个大写字母,一个小写字母,一个数字,一个特殊符号。
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
minlen=12 密码最小长度为12个字符。
lcredit=-1 密码应包含的小写字母的至少一个
ucredit=-1 密码应包含的大写字母至少一个
dcredit=-1 将密码包含的数字至少为一个
ocredit=-1 设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。
3.1 再配置修改密码时不能重复前n次使用过的
在 password sufficient pam_unix.so use_authtok md5 shadow remember=10
在相应行的后面添加 remember=10,而不是添加一行!
最终的文件结果为:
[root@bogon ~]# cat /etc/pam.d/system-auth#%PAM-1.0# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth required pam_env.soauth sufficient pam_unix.so nullok try_first_passauth requisite pam_succeed_if.so uid >= 1000 quiet_successauth required pam_deny.soaccount required pam_unix.soaccount sufficient pam_localuser.soaccount sufficient pam_succeed_if.so uid < 1000 quietaccount required pam_permit.so#password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=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 sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtokpassword sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=8password required pam_deny.sosession optional pam_keyinit.so revokesession required pam_limits.so-session optional pam_systemd.sosession [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uidsession required pam_unix.so
这个时候不用重启机器
- 修改密码测试策略


通过/etc/security/opasswd中查看禁止使用近期用过的5个密码
改密码时,不能用之前10次内用过的密码
注意:这个密码策略对root用户无效
5.设置密码有效期
此节内容可以参考链接:https://www.cnblogs.com/kevingrace/p/9670160.html
/etc/login.defs文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的。
5.1 备份原有文件
cp /etc/login.defs /etc/login.defs.back.1009
5.2 修改密码有效期
PASS_MAX_DAYS 90 —-两次改变密码之间相距的最大天数,密码有效最大天数PASS_MIN_DAYS 0 —-两次改变密码之间相距的最小天数,为零时代表任何时候都可以更改密码PASS_MIN_LEN 12 —-密码最小长度PASS_WARN_AGE 10 —-在密码过期之前警告的天数
注意:以上只对之后新增的用户有效,如果要修改已存在的用户密码规则,需要使用chage命令
/etc/shadow
5.3对已存在用户,配置密码过期时间
chage -M 8 -m 0 -W 10 testchage -M 90 test 修改test账户密码的有效天数为90天。过了这个天数,账户密码无效
查看账户的信息
[root@bogon ~]# chage -l testLast password change : Oct 09, 2021Password expires : Jan 07, 2022Password inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 90Number of days of warning before password expires : 10
如果一个用户密码已经过期,超过有效期。那么这个用户还是可以用原密码登录的,只是登录之后会立即让你修改密码:
测试:root用户设置了密码有效期之后,超过有效期之后
[root@bogon ~]# chage -l rootLast password change : Oct 11, 2021Password expires : neverPassword inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7[root@bogon ~]# chage -M 90 -m 0 -W 10 root[root@bogon ~]# chage -l rootLast password change : Oct 11, 2021Password expires : Jan 09, 2022Password inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 90Number of days of warning before password expires : 10[root@bogon ~]# dateFri Nov 12 00:11:22 EST 2021
修改当前系统时间,超过有效期时间
[root@bogon ~]# date -s 2022-02-09Wed Feb 9 00:00:00 EST 2022

退出root用户。再重新登录,这个时候还是用原来的密码。进来之后要立即修改密码
CentOS 添加用户并赋予管理员权限
1、新建用户,这里新建一个 test_user 的用户
adduser -m test_user
2、设置新用户密码
passwd test_user
3、将sudoers文件的权限修改成可编辑
chmod -v u+w /etc/sudoers
4、使用vim编辑sudoers文件
vim /etc/sudoers
5、在sudoes文件中添加如下的内容
找到 root ALL=(ALL) ALL
然后添加
test_user ALL=(ALL) ALL
如需新用户使用sudo时不用输密码,把最后一个ALL改为NOPASSWD:ALL即可。
6、将sudoers文件的权限修改成不可编辑
chmod -v u-w /etc/sudoers
题外话
查看用户所属分组
[root@localhost ~]# cat /etc/group | grep csbocicsboci:x:1000:[root@localhost ~]#

