From fda7c2e7ada9d73f49b8d8f459536ff3bd15e84d Mon Sep 17 00:00:00 2001 From: Christoph Niethammer Date: Sat, 12 Feb 2011 03:55:14 +0000 Subject: [PATCH] Test script for directory and file permissions. --- check_permissions.sh | 98 ++++++++++++++++++++++++++++++++++++++++++++ install_toolchain.sh | 5 ++- 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100755 check_permissions.sh diff --git a/check_permissions.sh b/check_permissions.sh new file mode 100755 index 0000000..43c4d3a --- /dev/null +++ b/check_permissions.sh @@ -0,0 +1,98 @@ +#!/bin/bash +# +# Script checking the right permissions for software installations: +# Ordinary files must at least have permissions 664 and directories 755. +# +# Christoph Niethammer (C) 2011 +# + +declare -r APP_NAME="${0##*/}" +declare -r VERSION="0.8" +declare SEARCH_DIRS= +declare VERBOSE=0 +declare PRINT_FILES=0 +declare PRINT_DIRS=0 +declare -r FILE_PERMS="! -perm -664" +declare -r DIR_PERMS="! -perm 775" + + +function print_usage { + +binary=`basename $0` +cat < + +Usage: $APP_NAME DIR + + -h, --help Print this usage + -v, --verbose Be more verbose (print list of found directories and files) + +Checks permissions in the given directories. Permissions for files must be +at least set to 664 and for directories must be exactly 775. + +EOF +} + +function die { + echo $1 + exit 1 +} + +if [ $# -lt 1 ]; then + print_usage + exit 0 +fi + +for arg in $@; do + case $arg in + --help|-h) + print_usage + exit 0 + ;; + --verbose|-v) + VERBOSE=1 + PRINT_FILES=1 + PRINT_DIRS=1 + ;; + *) + if [[ ! -d $arg ]]; then + echo "# Skipped $arg" + continue + fi + SEARCH_DIRS+="${IFS}${arg}" + #echo "# Added $arg" + ;; + esac +done + +echo "# Searching for directories which do not match '$DIR_PERMS' ..." +WRONG_DIRS=(`find $SEARCH_DIRS -type d $DIR_PERMS -print`) +echo "# Searching for files which do not match '$FILE_PERMS' ..." +WRONG_FILES=(`find $SEARCH_DIRS -type f $FILE_PERMS -print`) + + +if [[ $PRINT_FILES -eq 1 ]]; then +echo "# ** directories with wrong permissions:" +for dir in ${WRONG_DIRS[@]}; do + echo $dir +done + +echo "# ** files with wrong permissions:" +for file in ${WRONG_FILES[@]}; do + echo $file +done +fi + +echo "#" +echo "# ------------------------------" +echo "# Summary:" +echo "# directories with wrong permissions: ${#WRONG_DIRS[@]}" +echo "# files with wrong permissions: ${#WRONG_FILES[@]}" +echo "# ------------------------------" +echo "#" + +# clean up temporary files +#rm $WRONG_DIR_FILE +#rm $WRONG_FILES_FILE diff --git a/install_toolchain.sh b/install_toolchain.sh index ec5130b..8f86655 100755 --- a/install_toolchain.sh +++ b/install_toolchain.sh @@ -13,7 +13,8 @@ echo $SIT_DIR export SRC_POOL=${HOME}/src export WORKDIR_BASE=${HOME}/work -PREFIX=$HOME/bin/local +#PREFIX=$HOME/bin/local +PREFIX=/opt/amtopt/autotools/local MAKEOPTS="-j4" @@ -105,6 +106,8 @@ P=autoconf-${AUTOCONF_VERSION} A=${P}.tar.gz sit_auto_install +export PATH=$PREFIX/bin:$PATH +export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH # install automake P=automake-${AUTOMAKE_VERSION} A=${P}.tar.bz2