问题
本案例要求编写脚本getupwd-awk.sh,实现以下需求:
找到使用bash作登录Shell的本地用户
列出这些用户的shadow密码记录
按每行“用户名 --> 密码记录”保存到getupwd.log,如图-2所示
图-2
步骤
实现此案例需要按照如下步骤进行。
步骤一:任务需求及思路分析
编写getupwd-awk.sh脚本的任务要求如下:
分析出使用bash作登录Shell的本地用户
列出这些用户的shadow密码记录
按每行“用户名 – 密码记录”保存结果
上一章实现时基本是用sed来过滤,结合变量替换截取来实现的,操作比较繁琐。
现在学习了awk以后,再想想这个任务要求,是不是变简单了?
—— 提取用户名列表时,只要通过awk命令以“:”为分隔提取/etc/passwd文件中结尾部分为“:/bin/bash”的用户记录的第1个字段即可。
—— 有了用户名列表以后,可以交给for循环做一个遍历,egrep提取密码行,再交给awk提取以“:”分隔的第3个字段即可。
步骤二:根据实现思路编写脚本
复制原getupwd.sh脚本,生成getupwd-awk.sh:
[root@s