The assignment is to write a setuid program that has most of the characteristics of a print spooler. This program must be secure against many different attacks, including attempts to "print" files not accessible to the user. At the same, it must "print" each legitimate file. (Note that you will not actually be printing anything.) Here are the specific requirements. The setuid program should read a list of filenames from stdin. For each such file, it should (if the file is readable by the actual user) run the command /usr/bin/md5sum on that file. The output of the command should be written to a file writable only by the owner of the setuid program, and in particular not writable by the invoker. You may *not* use the MD5 library procedures; you *must* use the external command. Pay careful attention to your selection of test data. You will be given access to a second account to use for this assignment. Use your regular account to create the program and make it setuid; use the second account for testing. Deliverables The tar file you turn in will include the program, the input from a test run, and the output from that run. You'll be graded on the overall quality of the program, its resistance to the various attacks we've discussed in class --- this assignment is designed to stress several different points --- and your selection of test data.