开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情 方法1
#!/bin/bash
LANGBAK=${LANG} #备份当前字符集
LANG=en_US.utf8 #使用英文字符集
rm -f /tmp/xunjian/*
a=`ls -l /etc/sudoers.d/ | grep -v "^total" | awk '{print $NF}'`
for file in $a
do
b=`stat -c %y /etc/sudoers.d/$file | awk -F '+' '{print $1}' | awk -F '.' '{print $1}'`
c=`echo $b| tr -d ":&-" |tr -d " "`
d=`ls /etc/sudoers.d/$file| grep -E *_[0-9]{14} |awk -F '_' '{print $2}'`
if [ "$c" == "$d" ];then
echo "sudoers.d目录正常" >/tmp/xunjian/sudoersd
else
echo "sudoers.d目录不正常" >/tmp/xunjian/nosudoersd
fi
done
if [ -e /tmp/xunjian/sudoersd ];then
echo "sudoers.d目录正常"
elif [ -e /tmp/xunjian/nosudoersd ];then
echo "sudoers.d目录不正常"
else
echo "当前服务器没有配置sudo"
fi
LANG=${LANGBAK} #还原执行前的字符集
方法2
LANGBAK=${LANG} #备份当前字符集
LANG=en_US.utf8 #使用英文字符集
func1() {
echo "5、检查/etc/sudoers.d
-------------------------------------------------------------------------------"
dateday=`date "+%Y-%m-%d"` #当天日期
Date5=`date "+%F-%H:%M:%S"` #当前详细日期
#检查sudoers.d目录
a=`ls -l /etc/sudoers.d/ | grep -v "^total" | awk '{print $NF}'`
for ls in $a
do
pdModify=`stat /etc/sudoers.d/$ls | grep Modify | awk '{print $2}'`
pdChange=`stat /etc/sudoers.d/$ls | grep Change | awk '{print $2}'`
if [ "$pdModify" == "$dateday" ];then
echo "/etc/sudoers.d/$ls" >> /tmp/pdModify_${Date5}
elif [ "$pdChange" == "$dateday" ];then
echo "/etc/sudoers.d/$ls" >> /tmp/pdChange_${Date5}
fi
done
if [ -s /tmp/pdModify_${Date5} -a -s /tmp/pdChange_${Date5} ];then
echo "(1)检查/etc/sudoers.d目录结果:"
echo " 检测到目录中以下文件当天被修改过,请检查:"
cat /tmp/pdModify_${Date5}
echo " 检测到目录中以下文件当天被修改过文件属性,请检查权限、属主属组是否正确:"
cat /tmp/pdChange_${Date5}
elif [ -s /tmp/pdModify_${Date5} ];then
echo "(1)检查/etc/sudoers.d目录结果:"
echo " 检测到目录中以下文件当天被修改过,请检查:"
cat /tmp/pdModify_${Date5}
elif [ -s /tmp/pdChange_${Date5} ];then
echo "(1)检查/etc/sudoers.d目录结果:"
echo "检测到目录中以下文件当天被修改过文件属性,请检查权限、属主属组是否正确:"
cat /tmp/pdChange_${Date5}
else
echo "(1)检查/etc/sudoers.d目录结果:目录中文件当天没有被修改过,文件正常!"
fi
rm -rf /tmp/pdModify_${Date5}
rm -rf /tmp/pdChange_${Date5}
echo ""
#检查sudoers文件
proModify=`stat /etc/sudoers | grep Modify | awk '{print $2}'`
proChange=`stat /etc/sudoers | grep Change | awk '{print $2}'`
if [ "$proModify" == "$dateday" ];then
echo "(2)/etc/sudoers文件检查结果:文件当天被修改过,请检查!"
elif [ "$proChange" == "$dateday" ];then
echo "(2)/etc/sudoers文件检查结果:文件当天被修改过属性,请检查权限、属主属组是否正确!"
else
echo "(2)/etc/sudoers文件检查结果:文件正常!"
fi
}
func1