ports/net/munin/patches/patch-master__bin_munin-check_in

107 lines
2.6 KiB
Text

Index: master/_bin/munin-check.in
--- master/_bin/munin-check.in.orig
+++ master/_bin/munin-check.in
@@ -1,4 +1,4 @@
-#!@@BASH@@
+#!@@GOODSH@@
# -*- sh -*-
# Copyright (C) 2008 Matthias Schmitz
# This program is free software; you can redistribute it and/or
@@ -19,20 +19,17 @@
####
# prints usage
-function usage() {
+function usage {
echo "Usage: munin-check [options]
Options:
- -h|--help Show this help.
- -f|--fix-permissions Fix the permissions of the munin dirs and files.
- Needs superuser rights.
-
-Please don't use this script if you are using 'graph_strategy cgi'!
-It doesn't care about the right permissions for www-data yet...
+ -h Show this help.
+ -f Fix the permissions of the munin dirs and files.
+ Needs superuser rights.
"
}
# Get options from the command line
-TEMP=$(getopt -o fh --long fix-permissions,help -n 'munin-check' -- "$@")
+TEMP=$(getopt fh $*)
if [[ $? -ne 0 ]]; then
echo "Terminating..." >&2
@@ -44,8 +41,8 @@ eval set -- "$TEMP"
while :; do
case "$1" in
- -h|--help) usage ; exit 0; shift ;;
- -f|--fix-permissions) PLEASE_FIXME="true" ; shift ;;
+ -h) usage ; exit 0; shift ;;
+ -f) PLEASE_FIXME="true" ; shift ;;
--) shift ; break ;;
*) echo "Internal error!" ; exit 1 ;;
esac
@@ -53,7 +50,7 @@ done
####
# sets owner to "@@USER@@"
-function fix_owner() {
+function fix_owner {
fix_object=$1; shift
fix_owner=$1; shift
@@ -71,7 +68,7 @@ function fix_owner() {
####
# check if "@@USER@@" is owner, if PLEASE_FIXME set it calls fix_owner()
-function owner_ok() {
+function owner_ok {
object=$1; shift || exit 1
correctowner=$1; shift || exit 1
@@ -93,6 +90,11 @@ function owner_ok() {
"lost+found") return 0;;
esac
+ # cgi-tmp owner should be www
+ case $object in
+ "cgi-tmp") correctowner=www;
+ esac
+
# ... and then dive into it
for subobject in $object/*; do
owner_ok $subobject $correctowner
@@ -101,7 +103,7 @@ function owner_ok() {
}
-function perm_ok(){
+function perm_ok {
object=$1; shift || exit 1
correctperm=$1; shift || exit 1
@@ -144,12 +146,20 @@ for dir in @@DBDIR@@/*; do
*/plugin-state)
continue;;
esac
+ case $dir in
+ */cgi-tmp)
+ continue;;
+ esac
echo "check $dir"
owner_ok $dir @@USER@@
done
+echo "check @@DBDIR@@/cgi-tmp"
+owner_ok @@DBDIR@@/cgi-tmp www
+
echo "check miscellaneous"
-norec=yes owner_ok @@LOGDIR@@ @@USER@@
+norec=yes owner_ok @@LOGDIR@@ @@PLUGINUSER@@
+norec=yes perm_ok @@LOGDIR@@ 775
norec=yes owner_ok @@DBDIR@@ @@USER@@
norec=yes perm_ok @@DBDIR@@ 755