本案例要求编写脚本,实现以下需求, 找到使用bash作登录Shell的本地账户名 列出这些账户的shadow密码记录 按每行“账户名 --> 密码记录”保存到文件中
时间: 2024-05-01 09:21:48 浏览: 52
用来记录登录后使用命令的shell脚本
好的,这个需求可以通过以下脚本实现:
```bash
#!/bin/bash
# 找到使用bash作登录Shell的本地账户名
usernames=$(grep -E "/bash$" /etc/passwd | cut -d: -f1)
# 列出这些账户的shadow密码记录并保存到文件中
for username in $usernames; do
shadow=$(sudo grep -E "^$username:" /etc/shadow)
echo "$username --> $shadow" >> password_records.txt
done
```
脚本的实现步骤如下:
1. 使用 `grep` 命令查找所有使用 `bash` 作为登录 Shell 的本地账户名,并将结果保存在 `$usernames` 变量中。
2. 使用 `for` 循环遍历每个账户名。
3. 使用 `sudo grep` 命令查找该账户名的 shadow 密码记录,并将结果保存在 `$shadow` 变量中。
4. 使用 `echo` 命令将账户名和密码记录写入文件 `password_records.txt` 中。
请注意,该脚本需要使用 `sudo` 权限来读取 `/etc/shadow` 文件。如果您不具备该权限,请联系系统管理员进行授权。
阅读全文