1 #!/bin/sh 2 #********************************************************************* 3 # Copyright (c) International Business Machines Corp., 2000 4 # 5 # This program is free software; you can redistribute it and/or modify 6 # it under the terms of the GNU General Public License as published by 7 # the Free Software Foundation; either version 2 of the License, or 8 # (at your option) any later version. 9 # 10 # This program is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13 # the GNU General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with this program; if not, write to the Free Software 17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 # 19 # FILE : cron 20 # 21 # PURPOSE: Test a bad (negative) cron job 22 # - try to edit the crontab of root 23 # - try to set illegal or nondefined execution times 24 # Here the script uses file illegal_cron_lines which contains two 25 # fields per line: the cron line to be tested (without script name), 26 # and the description of this test. The description is written to 27 # stdout during execution of the test. 28 # - try to do things you aren't allowed as non-root (cron runs as root) 29 30 # 31 # HISTORY: 32 # SUSE 33 # 34 35 36 TEST_USER="c02_user" 37 TEST_USER_GROUP="users" 38 TEST_USER_HOMEDIR="/home/$TEST_USER" 39 40 #----------------------------------------------------------------------- 41 # FUNCTION: do_setup 42 #----------------------------------------------------------------------- 43 44 do_setup(){ 45 46 #erase user if he may exist , so we can have a clean env 47 rm -rf /home/$TEST_USER 48 userdel $TEST_USER 49 sleep 1 50 51 useradd -m -g $TEST_USER_GROUP $TEST_USER 52 if [ $? != 0 ] 53 then { 54 echo "Could not add test user $TEST_USER to system $RHOST." 55 exit 1 56 } 57 fi 58 # restart cron daemon 59 # Red Hat uses crond, SuSE/Other uses cron. 60 if [ -f /etc/init.d/crond ]; then 61 /etc/init.d/crond restart 62 else 63 /etc/init.d/cron restart 64 fi 65 } 66 67 #----------------------------------------------------------------------- 68 # FUNCTION: do_cleanup 69 #----------------------------------------------------------------------- 70 71 do_cleanup(){ 72 rm -rf /home/$TEST_USER 73 userdel $TEST_USER 74 } 75 76 #----------------------------------------------------------------------- 77 # FUNCTION: MAIN 78 #----------------------------------------------------------------------- 79 do_setup 80 cron_neg_tests.sh $TEST_USER 81 EXIT_CODE=$? 82 do_cleanup 83 exit $EXIT_CODE 84