用shell脚本创建入侵检测系统

时间:2019-04-25 07:37:41

标签: shell

我在UNI部门工作,我必须创建一个Shell脚本,该脚本监视带有一些文本文件的目录,这些文件可以通知您(可以手动检查以了解是否已被修改)。老实说,我不确定从哪里开始,对Linux不好,无法找到任何帮助。我只能在ubuntu中使用标准工具。任何帮助都会很棒。谢谢

更新-这是到目前为止,我需要一种方法来验证更改文件后打印的值是否相同(如果它们不相同,则打印已更改的文件)

也很抱歉第一次使用该网站进行学习。

#!/bin/sh

echo "press 1 to check - press 2 to exit"

while :
do
    read INPUT_STR
    case $INPUT_STR in
        1)
            echo "checking sums"
    md5sum Target/bob
    md5sum Target/bec
    md5sum Target/john
    md5sum Target/mary
    md5sum Target/mike
            ;;

        2)
            break
            ;;
        *)
            echo "incorrect input"
    esac
done

echo "thankyou for using IDS"

1 个答案:

答案 0 :(得分:0)

你的意思是那样的吗?

#!/bin/bash

WORKDIR=/home

TARGETS=(
"$WORKDIR/bob"
"$WORKDIR/bec"
"$WORKDIR/john"
"$WORKDIR/mary"
"$WORKDIR/mike"
)

for target in "${TARGETS[@]}"; do
    md5file="${target##*/}.md5"
    if [[ -e "$md5file" ]]; then
        md5sum --quiet -c "$md5file"
    else
        echo "create md5sum referenz file $md5file"
        md5sum "$target"/* > "$md5file"
    fi
done

在第一次运行时,它会为每个目录创建一个参考文件。在第二次运行时,该目录将与参考文件进行比较。将显示修改。删除一个参考文件后,将在下一次运行时再次创建它。

说明

# loop over the array with the targets
for target in "${TARGETS[@]}"; do

    # remove all directories except the last, append .md5
    # and assign it to the variable md5file
    md5file="${target##*/}.md5"

    # if md5file exists, use it as reference and check if
    # modifications where happend 
    if [[ -e "$md5file" ]]; then

        # use the md5file as reference and only show
        # modified files, ignore ok messages
        md5sum --quiet -c "$md5file"

    else
        # when no md5file exists

        echo "create md5sum referenz file $md5file"

        # use target, append /* to it and run md5sum
        # redirect output to md5file (reference file for next run)
        md5sum "$target"/* > "$md5file"
    fi
done