查看etc sudoersd 目录下面是否可疑

142 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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