#!/bin/bash

### BEGIN INIT INFO
# Provides:          mount-reassure-noexec
# Required-Start:    $local_fs $remote_fs mountall mountnfs
# Required-Stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: reassure noexes mounts
# Description:       Reassure noexec mounts
### END INIT INFO

#noexecs=`mount |grep noexec |grep ^/ |sed -e "s/.* on //" |sed -e "s/ .*//"`

function fstabnoexecs() {
    while read MNT_FSNAME MNT_DIR MNT_TYPE MNT_OPTS MNT_FREQ MNT_PASS MNT_JUNK; do
	case "$MNT_FSNAME" in
	    ""|\#*)
	    continue;
	    ;;
	esac
	case "$MNT_OPTS" in
	    ""*noexec*)
	    echo "to: $MNT_DIR"
	    ;;
	esac
    done < /etc/fstab
}

case $1 in
    stop)
	echo "Reassuring noexec: nothing to do"
    ;;

    *)
	noexecs=`fstabnoexecs`

	echo -n "Reassuring noexec:"
	for noex in $noexecs; do
	    if [ -d $noex ]; then
		echo -n " $noex"
		mount -o remount,noexec $noex
	    fi
	done
	echo "."
    ;;
esac
