#!/bin/bash users=$(cut -d: -f1 /etc/passwd) for user in $users do if [[ $(getent passwd $user | cut -d: -f3) -ge 1000 ]] then if [[ $(chage -l $user | grep "Password expires" | grep "密码过期时间" | cut -d: -f2 | tr -d ' ') == "never" || $(chage -l $user | grep "Password expires" | grep "密码过期时间" | cut -d: -f2 | tr -d ' ') == "从不" ]] then echo "$user: Password never expires" else expire_date=$(date -d "$(chage -l $user | grep "Password expires" | cut -d: -f2 | tr -d ' ')" +%s) current_date=$(date +%s) if [[ $expire_date -lt $current_date ]] then echo "$(hostname -I | awk '{print $1}'), $user: Password has expired" else echo "$user: Password will expire on $(chage -l $user | grep "Password expires" | cut -d: -f2 | tr -d ' ')" fi fi else account_status=$(passwd -S $user | awk '{print $2}') if [[ "$account_status" == "L" ]]; then echo "$(hostname -I | awk '{print $1}'), User $user: account locked!" fi fi done这段代码去掉筛选非系统用户
时间: 2023-12-10 07:37:50 浏览: 84
CVE-2021-22986 F5 BIG-IP-IQ 远程代码执行.md
可以将第二个if语句中的条件改为:
```
if [[ $(getent passwd $user | cut -d: -f3) -ge 1000 && $(getent passwd $user | cut -d: -f7) != "/sbin/nologin" && $(getent passwd $user | cut -d: -f7) != "/usr/sbin/nologin" ]]
```
这样就可以排除掉系统用户了。
阅读全文