####################################### # # resource control # of IT-Zukunft Schule server scripts # ####################################### ### ### server variables ### ADMINSERVER="tjener" DHCPSERVERS="tjener" FILESERVERS="tjener" PRINTSERVERS="tjener" SAMBASERVERS="tjener" ALLSERVERS="tjener disklserver ltspserver00" LOGSERVER="tjener" NETLOGONSERVER="tjener" ### ### internet settings ### HOSTNAME=`hostname -s` DOMAIN=`hostname -d` ### ### fileserver settings ### HOMEDIRS="/skole/*/home*" GROUPDIRS="/skole/*/group*" TRANSFERDIRS="/skole/*/transfer/*" TRANSFER_DEL_WARNING="-ctime 150" TRANSFER_DEL_PERFORM="-ctime +160" TRANSFER_WARNINGS_DISABLED="true" ### ### LDAP server settings ### LDAPMASTER="ldap.intern" LDAPURI="ldaps://$LDAPMASTER" LDAP_BASEDN="dc=skole,dc=skolelinux,dc=no" LDAP_ADMINDN="cn=admin,ou=ldap-access,$LDAP_BASEDN" LDAP_PEOPLE_BASEDN="$LDAP_BASEDN" LDAP_GROUPS_BASEDN="$LDAP_BASEDN" LDAP_HOSTS_BASEDN="$LDAP_BASEDN" LDAP_PRINTERS_BASEDN="$LDAP_BASDN" LDAP_SERVERS="tjener" ### ### settings for HOME quotas ### STD_HOME_QUOTA="3500000 3850000 0 0" RED_HOME_QUOTA="1300000 1400000 0 0" # grace time for HOMES is 7 days STD_HOME_GRACE="604800 604800" declare -a SPECIAL_HOME_QUOTA #SPECIAL_HOME_QUOTA[`id -u gabmik`]="0 0 0 0" #SPECIAL_HOME_QUOTA[`id -u sanmar`]="0 0 0 0" #SPECIAL_HOME_QUOTA[`id -u andluc`]="0 0 0 0" ### ### settings for GROUP quotas ### STD_GROUP_QUOTA="10000000 11000000 0 0" # grace time for GROUPS is 14 days STD_GROUP_GRACE="1209600 1209600" declare -a SPECIAL_GROUP_QUOTA SPECIAL_GROUP_QUOTA[`getent group admins | cut -d: -f3`]="0 0 0 0" ################################################################ ### ### general functions, no more VARs beyond this point, please! ### ################################################################ function script_header () { case $TERM in xterm|linux) exec_type="ITZkS script (direct call)" ;; dumb) exec_type="cronlog-entry (dumb terminal)" ;; cron) exec_type="cronlog-entry" ;; *) exec_type="ITZkS script (unknown exec origin)" ;; esac echo echo +++++ echo $exec_type: `basename $0` echo `date`, $HOSTNAME echo +++++ echo } function cron_header () { script_header $@ } function check_host () { HOST=`hostname -s` ALLOWED_HOSTS="$1" if ! echo $ALLOWED_HOSTS | grep $HOST >/dev/null; then echo -e "\nITZkS script "`basename $0`" is not for: $HOST.$DOMAIN\nPossible hosts are: $ALLOWED_HOSTS\n" exit -1 fi } function abort_on_host () { HOST=`hostname -s` FORBIDDEN_HOSTS="$1" if echo $FORBIDDEN_HOSTS | grep $HOST >/dev/null; then echo -e "\nITZkS script "`basename $0`" is forbidden on: $HOST.$DOMAIN\n" exit -1 fi } function check_root () { ## make sure we are running as root, otherwise become! ######################### if [ ! "`id 2>&1 | egrep 'uid=0' | cut -d '(' -f1`" = "uid=0" ]; then echo "Enter root's password here..." OMMAND="`absolute_scriptpath $0` $@" su -c "$COMMAND" exit 0 fi } function get_password () { echostr="$1" stty -echo # Turns off screen echo. echo -n "$echostr " > /dev/stderr read passwd echo "$passwd" > /dev/stdout echo > /dev/stderr stty echo # Restores screen echo. } function ldapserver_up () { ldapsearch -x -n -H "$LDAPURI" -b "$LDAP_BASEDN" cn=admin >/dev/null 2>/dev/null ret=$? return $ret } function finish_script () { case $1 in 0) echo -e "\n*** done as you proposed\n\nFinished $(basename $0)\n" ;; *) echo -e "\n!!! failed\n\nFailure in `basename $0` :-(\n" ;; esac exit $1 } function absolute_scriptpath () { # this is buggy for "./bin/script.sh" (per) case $0 in /*) echo "$0" ;; *) echo "`pwd`/$0" ;; esac # */ } function is_true() { echo $1 | egrep "(y|Y|yes|YES|Yes|true|TRUE|True|On|ON|on)" 1>/dev/null return $? }