写出批量查询linux系统所有用户密码是否过期以及账户是否锁定的python脚本,查询账户是否锁定用 pam_tally2 --user
时间: 2023-12-10 15:38:27 浏览: 219
以下是一个简单的Python脚本,它可以批量查询Linux系统中所有用户的密码是否过期以及账户是否锁定:
```python
import subprocess
# 获取系统中所有用户的用户名
users = subprocess.check_output(['cut', '-d', ':', '-f', '1', '/etc/passwd']).decode().split('\n')[:-1]
for user in users:
# 检查密码是否过期
password_info = subprocess.check_output(['chage', '-l', user]).decode()
if 'Password expires' in password_info:
password_expired = password_info.split('Password expires ')[-1].split(',')[0]
print(f'User {user}\'s password will expire on {password_expired}.')
else:
print(f'User {user}\'s password is not set to expire.')
# 检查用户是否被锁定
tally_output = subprocess.check_output(['pam_tally2', '--user', user]).decode()
if 'deny=' in tally_output:
deny_count = tally_output.split('deny=')[-1].split()[0]
print(f'User {user} has been locked out (failed login attempts: {deny_count}).')
else:
print(f'User {user} is not locked out.')
```
该脚本使用了`subprocess`模块来运行Linux命令,并解析命令输出以确定每个用户的密码是否过期以及账户是否锁定。请注意,我们使用`cut`命令来获取系统中的所有用户,使用`chage`命令来检查密码是否过期,使用`pam_tally2`命令来检查账户是否锁定。
阅读全文