#!/usr/local/bin/perl -w use CGI; my $post_data=new CGI; my $username=$post_data->param('username'); my $on_off=$post_data->param('on_off'); my $message=$post_data->param('message'); &Command(); @junk = ("authorize", "vacation.pl", $username, $on_off, $message); #@junk = ("vacation.pl", $username, $on_off, $message); $runme = join (" ",@junk); &Header(); print $runme; $output=`$runme`; print $output; &Footer(); sub Command { $username=$ARGV[0]; $on_off=$ARGV[1]; $message = join (" ",@ARGV); $message =~ s/$username//; $message =~ s/$on_off//; } sub Header { print "Content-type: text/html\n\n"; print "\n"; print " \n"; print " $username Vacation Message\n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print "
"; print `date`; print " Information Technologies
\n"; print "
\n"; print " \n"; print "
\n"; print "
\n"; } sub Footer { print "
\n"; print " \n"; print " \n"; print "
\n"; print "
IT
\n"; print "
\n"; print "
\n"; print " \n"; print "\n"; } #### #include #include int main(argc, argv) int argc; char *argv[]; { FILE *authfile; char runme[2000]; char allowed[50]; int temp; if ( 2 > argc) { printf("Usage: %s [script name] \n", argv[0]); exit(1); } authfile = fopen ("auth.dat","r"); if (authfile == (FILE*) NULL) { printf ("** ERROR READING auth.dat, Access Denied\n"); } else { while (fgets(allowed,50,authfile)) { temp = strlen(allowed); allowed[temp-1]=NULL; if(strcmp(allowed,argv[1])==0) { runme[0]=46; runme[1]=47; for ( temp = 1; temp < argc; temp++) { strcat(runme,argv[temp]); strcat(runme, " "); } /*strcat("/usr/sbin/auth/",runme);*/ system(runme); exit(0); } } } printf ("** COMMAND NOT ALLOWED\n"); return 1; } #### #!/usr/local/bin/perl -w sub on { open(FORWARD, ">/home/$username/.forward") || die ("Unable to open /home/$username/.forward"); #.forward must look like #\username, "|/usr/bin/vacation username" $set_fwd="\\$username, \"|/usr/bin/vacation $username\""; print FORWARD $set_fwd; close(FORWARD); open(VMESSAGE, ">/home/$username/.vacation.msg") || die ("Unable to open /home/$username/.vacation.msg"); print VMESSAGE $message; print VMESSAGE "\n"; close(VMESSAGE); open(VACATIONDIR, ">/home/$username/.vacation.dir") || die ("Unable to open /home/$username/.vacation.dir"); close(VACATIONDIR); open(VACATIONPAG, ">/home/$username/.vacation.pag") || die ("Unable to open /home/$username/.vacation.pag"); close(VACATIONPAG); `chmod 644 /home/$username/.forward /home/$username/.vacation.msg /home/$username/.vacation.pag /home/$username/.vacation.dir`; `chown $username /home/$username/.forward /home/$username/.vacation.msg /home/$username/.vacation.pag /home/$username/.vacation.dir`; } sub off { `rm -f /home/$username/.vacation.msg`; `rm -f /home/$username/.vacation.pag`; `rm -f /home/$username/.vacation.dir`; `rm -f /home/$username/.forward`; } if (($#ARGV > 1) ||(($#ARGV == 1) && ($ARGV[1] eq "off"))) { $username=$ARGV[0]; $on_off=$ARGV[1]; if($on_off eq "on") { $message = join (" ",@ARGV); $message =~ s/$username//; $message =~ s/$on_off//; &on(); print "
$username\'s vacation message has been \n"; print " activated.

\n"; print "
\n"; print "
\n"; print "

Please E-Mail $username\@whereiwork.com\n"; print " to test this message.
If you do not recieve an automatic response with your\n"; print " vacation message please resubmit this form and try again.
\n"; } elsif($on_off eq "off") { &off(); print "
$username\'s vacation message has been \n"; print " deactivated.

\n"; print "
\n"; print "
\n"; print "

Please E-Mail $username\@whereiwork.com\n"; print " to test this message.
If you recieve an automatic response with your\n"; print " vacation message please resubmit this form and try again.
\n"; } } else { print "Not all necessary values have been given.\n"; }