Programming with Privileges For this assignment, modify the programs for the last assignment to use the actual user and group ID. That is, instead of having -u and -g, see what permissions the programs are actually running with. The catch: you MUST prevent any access to the repository that bypasses the ACLs. This implies that the repository must be protected using OS permissions, which in turn means that a separate UID is needed. The programs must either be setUID or use message-passing; that's your choice. The objects for user and group names are no longer needed; use the system's equivalents. One important design decision: what UID are you using, root or some non-privileged one? Your README file MUST justify your choice. A correct choice with an incorrect justification will lose points. (Of course, an incorrect choice will also lose points.) You should run this assignment using a VMware virtual machine; see the instructions on the web page. If you choose to use message-passing, you need not solve the start-up problem; it is acceptable to start the daemon manually. You must supply a script that will create an empty repository, including setting all permissions you rely on for correct, secure behavior. The README file should explain the rationale for whatever permissions you choose.