Question 2 (35 marks)
(a) One of the rules of root for systems administration is: “Never do anything as root you can do as a normal user”. Why is this? Give two examples to support this. [5 marks]
(b) Another of the rules of root for systems administration is: “Never run untested or untrusted 3rd party software as root”. Through detailing of specific system calls as examples, discuss why this rule is so important. Give several examples to support this. [5 marks]
(c) Detail the advantages and disadvantages of using Python rather than shell script programming for typical systems programming work. [7 marks]
(d) Why is using the system call gets considered bad programming? What alternative is there? [5 marks]
(e) Give a detailed, descriptive example of how the use of gets can be considered a security risk. [5 marks]
(f) Describe in detail the differences between a zombie process and an orphan process, including how to avoid them. [8 marks]