students editing output

Andrew Burt aburt at isis.UUCP
Wed Sep 25 00:50:16 AEST 1985


In order to prevent that sort of mischief here what I did was create a
program, 'turnin', which works thus...  The instructor owns a class homework
directory, in which are subdirectories for each student.  Each dir is
mode 700 (or 770 to let in a grader perhaps) and 'turnin' runs setuid
to the instructor.  Turnin allows a student to hand in any files for
given assignment numbers, from at which point it stashes those files in
their h/w dir.  E.g., "turnin 1 prog1.c prog1" which turns in "prog1.c" and
the binary "prog1" for assignment 1.

Further, if a student adds "script" to the list of files, it calls
script and saves the output into this directory directly.  Thus the student
is unable to modify his script.

Security has been handled in various ways: Only simple filenames may be
turned in (lest a student try to turn in a file of the instructors by
pathname...) and I use a modified 'script' -- after it opens the output
file I setuid(getuid()).  (Don't set up a scheme like this with an
unmodified 'script' -- otherwise the student will be the instructor
for the duration of the script.)

Turnin also allows the student to 'cat', 'ls -l', and 'rm' files he has
turned in.  At the instructor's discretion it allows overwriting files
(in any case it leaves a note indicating the date and time of any
overwrites).  My rule on this is that if the modification time of the
file is later than the due date, that part of the assignment gets no credit.

If there's any demand for it I'll mail/post the source.

				Andrew
-- 

Andrew Burt
University of Denver
Department of Math and Computer Science

UUCP:	{hao!udenva, nbires}!isis!aburt
CSNet:	aburt at UDENVER	(NOT udenva, as above...)
ARPA:	aburt%udenver.csnet at csnet-relay.arpa



More information about the Comp.unix mailing list