#!/bin/bash

declare -A owners=()
declare -A permissions=()

[ -r /etc/check_mk/file_stat.cfg ] && . /etc/check_mk/file_stat.cfg

if [[ ${#owners[@]} == 0 && ${#permissions[@]} == 0 ]]; then
	exit 0
fi

declare -A msg=()

for file in ${!owners[@]} ; do
	msg[$file]="${msg[${file}]}"
	owner=$(ls -l $file 2>/dev/null | awk '{print $3}')
	if [[ ${owner} != ${owners[${file}]} ]] ;then
		msg[$file]="wrong owner $owner ${msg[${file}]}"
	fi
done

for file in ${!permissions[@]} ; do
	msg[$file]="${msg[${file}]}"
	perm=$(ls -l $file 2>/dev/null | awk '{print $1}')
	if [[ ${perm} != ${permissions[${file}]} ]] ;then
		msg[$file]="wrong permissions $perm ${msg[${file}]}"
	fi
done

for file in ${!msg[@]} ; do
	if [ ${#msg[${file}]} -gt 0 ]; then
		echo "2 file_stat_$file - CRITICAL - ${msg[${file}]}"
	else 
		echo "0 file_stat_$file - OK"
	fi
done
