From chapter 4 of text book
Problem 15:
It should read the entire password file always, even when it figures early that the password is wrong so that page faults always occur.
Problem 16:
Do Nothing. Passwords are encrypted and stored. The encryption algorithm/program is public.
Problem 17:
No. The student can find out what the random number for super user is since this information in the /etc/passwd file is unencrypted. He can then try encrypting "good-guess" passwords and on succeeding, get into the system.
Problem 18:
The scheme works only if all machines can be trusted which is not wise in practice. If one (or more) machines can not be trusted, the whole scheme breaks down. An untrustworthy machine can send a message to a trusted machine asking it to carry out a command on behalf of super user.
Problem 19:
Ideal to fill zeros in freed disk blocks as used blocks left with information when freed, can be exposed leaking information that can be misused. From performance angle, it generates additional disk writes. One solution is to provide a facility to mark some files as critical whose blocks will be zeroed by the system when they are freed.
Problem 20:
To make a file readable by all except one user, Access Control Lists work fine. For sharing private files between users, ACL and capability both can be used. To make files accessible by public, ACLs or the rwx unix mechanism are easy to use. It may also be achieved by putting a capability for such a file in a well known common place in a capability system.
Problem 21:
Resembles the Ring mechanism (like in Multics). The numbers are ring numbers and processes can not access objects in inner rings - lower numbers. There is one difference. Generally ring mechanism is used to protect the various procedures and objects within a single process from one another and not for keeping A from reading B's files. For the latter, ACLs are used.
Problem 22:
If capabilities are used to have small(read minimal and necessary) protection domains, Trojan Horse type of attacks can be (almost) eliminated. For example, an editor, if started with only (and only) capability for the file to be edited and a scratch file and nothing else, then no matter what tricks lurk inside the editor code, it can access only those two files and nothing else. If the editor has access to all objects of the user, Trojan Horses can occur.
Problem 23:
Having two copies of the i-node in the table at the same time can be disaster, except when both are read-only. When both are written/ updated concurrently, and later the i-node(s) are written back to the disk, the later write will erase the first and disk blocks will be lost.
Problem 24:
Worm is a freestanding program that works by itself and spreads by making copies of itself. Virus is a code fragment that attaches itself to other programs/files and spreads by the executions of the infected programs.