写出筛选非系统用户并查询密码是否过期以及账户是否锁定的shell脚本
时间: 2023-11-22 14:55:19 浏览: 193
SSL证书过期监控shell脚本
以下是一个简单的shell脚本,可以用于筛选非系统用户并查询密码是否过期以及账户是否锁定:
```
#!/bin/bash
# 获取所有非系统用户
users=$(cut -d: -f1,3 /etc/passwd | awk -F: '$2 >= 1000 { print $1 }')
# 遍历所有用户
for user in $users; do
# 检查密码是否过期
password_status=$(chage -l $user | grep "Password expires" | awk '{print $4}')
if [[ "$password_status" != "never" && $(date -d "$password_status" +%s) -lt $(date +%s) ]]; then
echo "User $user: password expired!"
fi
# 检查账户是否锁定
account_status=$(passwd -S $user | awk '{print $2}')
if [[ "$account_status" == "L" ]]; then
echo "User $user: account locked!"
fi
done
```
该脚本首先获取所有非系统用户的用户名,然后遍历每个用户。对于每个用户,它使用`chage`命令检查密码是否过期,并使用`passwd -S`命令检查账户是否锁定。如果密码已过期或账户已锁定,则输出相应的消息。
请注意,该脚本需要在具有管理员权限的Linux系统上运行。
阅读全文