监视/etc/passwd文件是否正常

本文提供了一个Shell脚本用于监视并检查Linux系统中的/etc/passwd文件,包括查找UID为0的用户、重复UID和登录名、没有口令的用户以及没有作废日期的用户。

帮助监视/etc/passwd文件是否正常(P90 练习6.7)

1)找出有UID0的所有项

2)找出有重复UID的所有项

3)找出有重复登录名的所有项

4)找出没有口令的所有项

5)找出没有作废日期的所有项

 

以下是实现的shell脚本:

#!/bin/bash
#监视/etc/passwd正常

#找出有UID 0的用户
echo "----------------------------------"
user1=`less /etc/passwd | awk -F: '$3==0 {print $1}'`
if [ -z $user1 ];then
echo "1.there is no user's UID equals 0"
else
echo -n "1.the user of UID equals 0 have: "$user1
echo ""
fi

#找出有重复UID的用户
echo "----------------------------------"
user2=`awk -F: 'BEGIN{ORS=","}NR==FNR {a[$3]++} NR>FNR&&a[$3]>1 {print $1,$3}' /etc/passwd /etc/passwd`
if [ -z $user2 ];then
echo "2.there is no user's UID repeat"
else
echo -n "2.the user of repeat UID have: "$user2
echo ""
fi

#找出有重复登录名的用户
echo "---------------------------------"
user3=`awk -F: 'BEGIN{ORS=","}NR==FNR {a[$1]++} NR>FNR&&a[$1]>1 {print $1,$3}' /etc/passwd /etc/passwd`
if [ -z $user3 ];then
echo "3.there is no user's login name repeat"
else
echo -n "3.the user of repeat login name have: "$user3
echo ""
fi

#找出没有口令的所有用户
echo "---------------------------------"
user4=`sudo awk -F: 'BEGIN{ORS=","} length($2)<30 {print $1}' /etc/shadow`
if [ -z $user4 ];then
echo "4.there is no user have no password"
else
echo -n "4.the user of no password have: "$user4
echo ""
fi

#找出没有作废日期的所有用户
echo "---------------------------------"
user5=`sudo awk -F: 'BEGIN{ORS=","} length($7)<1 {print $1}' /etc/shadow`
if [ -z $user5 ];then
echo "5.there is no user have no outdate time"
else
echo -n "5.the user of no outdate time have: "$user5
echo ""
fi
echo "---------------------------------"

转载于:https://www.cnblogs.com/brucee/p/3892483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值