# find / -type f \( -perm -1000 -o -perm -2000 -o -perm -4000 \) -print
[步骤] Linux 密码策略的设置 (设置密码复杂度) (CentOS Linux 8 & RHEL 8 版)
步骤目录:
步骤一:设置密码必须包含大小写字母等策略
1.1 生成设置密码必须包含大小写字母的策略文件
1.2 设置密码必须包含大小写字母等策略
步骤二:设置新密码不能和旧密码重复的策略
2.1 修改 password-auth 文件
2.2 修改 system-auth 文件
具体的操作步骤:
步骤一:设置密码必须包含大小写字母等策略
1.1 生成设置密码必须包含大小写字母的策略文件
# authselect list
- nis Enable NIS for system authentication
- sssd Enable SSSD for system authentication (also for local users only)
- winbind Enable winbind for system authentication
- custom/password-policy Enable SSSD for system authentication (also for local users only)
(
注意:如果没有 custom/password-policy 文件则进行以下操作:
# authselect create-profile password-policy -b sssd --symlink-meta --symlink-pam
# authselect select custom/password-policy
# authselect current
Profile ID: custom/password-policy
Enabled features: None
)
1.2 设置密码必须包含大小写字母等策略
# vim /etc/security/pwquality.conf
将部分内容修改如下:
......
minlen = 15
......
dcredit = -1
......
ucredit = -1
......
lcredit = -1
......
ocredit = -1
......
dictcheck = 1
......
usercheck = 1
......
(
补充:这里以
1) 密码最小长度为 15 个字符
2) 密码包含数字的个数,-1 代表必须包含
3) 密码包含大写字母的个数,-1 代表必须包含
4) 密码包含小写字母的个数,-1 代表必须包含
5) 密码包含特殊字符的个数,-1 代表必须包含
6) 检查密码中是否包含字典
7) 检查密码中是否包含用户
)
步骤二:设置新密码不能和旧密码重复的策略
2.1 修改 password-auth 文件
# vim /etc/authselect/custom/password-policy/password-auth
将以下内容:
......
password.*requisite.*pam_pwhistory.so
......
修改为:
......
password requisite pam_pwhistory.so remember=5 use_authtok
......
(补充:这里以新密码不能和前 5 个旧密码重复为例)
2.2 修改 system-auth 文件
# vim /etc/authselect/custom/password-policy/system-auth
将以下内容:
......
password.*requisite.*pam_pwhistory.so
......
修改为:
......
password requisite pam_pwhistory.so remember=5 use_authtok
(补充:这里以新密码不能和前 5 个旧密码重复为例)
[工具] Shell 批量修改多个远程服务器某一个用户的过期密码
介绍:
作者:朱明宇
名称:批量修改多个远程服务器某一个用户的过期密码
作用:批量修改多个远程服务器某一个用户的过期密码
#使用方法:
1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每一个远程服务器名或 IP 地址占用一行
3. 在此脚本的分割线内写入相应的内容
4. 在执行此脚本的系统上安装 expect
5. 给此脚本添加执行权限
6. 执行此脚本
脚本分割线里的变量:
1. oldpassword=123 #原密码
2. newpassword=abc #新密码
3. user=root #要修改密码的用户
4. list=servers.txt #指定服务器清单
脚本:
#!/bin/bash
####################### Separator ########################
oldpassword=123
newpassword=abc
user=root
list=servers.txt
####################### Separator ########################
set timeout 5
for i in `cat $list`
do
echo $i
ssh $i "whoami"
if [ $? -eq 0 ];then
continue
fi
expect << EOF
spawn ssh $user@$i
expect "Current password:" {send "$oldpassword\r"}
expect "New password:" {send "$newpassword\r"}
expect "Retype new password:" {send "$newpassword\r"}
expect ">" {send "\r"}
EOF
echo
done
[步骤] Samba 的登陆 (免密)
# vim /etc/samba/smb
确保有以下内容:
......
security = user
map to guest = bad user
......
guest ok = yes
......
[内容] Ansible 变量的优先级
第一优先级:全局范围的变量(例如:执行临时命令时指定的变量)
第二优先级:playbook 里的变量。
第三优先级:主机范围里的变量(例如:清单中的服务器或服务器组)
(补充:清单中的服务器优先级高于清单中的服务器组)