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