1) What is the first step in problem-solving? A) Writing code B) Debugging C) Understanding the problem D) Optimizing the solution Answer: C 2) Which of these is not a step in the problem-solving process? A) Algorithm development B) Problem analysis C) Random guessing D) Testing and debugging Answer: C 3) What is an algorithm? A) A high-level programming language B) A step-by-step procedure to solve a problem C) A flowchart D) A data structure Answer: B 4) Which of these is the simplest data structure for representing a sequence of elements? A) Dictionary B) List C) Set D) Tuple Answer: B 5) What does a flowchart represent? A) Errors in a program B) A graphical representation of an algorithm C) The final solution to a problem D) A set of Python modules Answer: B 6) What is pseudocode? A) Code written in Python B) Fake code written for fun C) An informal high-level description of an algorithm D) A tool for testing code Answer: C 7) Which of the following tools is NOT commonly used in pr...
Protection
* Files must be kept safe for accuracy (against accidental damage ), and protection ( against deliberate malicious access.) The former is usually controlled with backup copies. This section discusses the latter.
* One basic protection method is to remove all access to a file. However this makes the file not usable, so some sort of controlled access must be organized.
Types of Access
The following low-level operations are often controlled:
• Read - See the contents of the file
• Write - Edit the contents of the file.
• Execute - Load the file onto the CPU and follow the instructions consists.
• Append - Add to the end of an available file.
• Delete - delete a file from the system.
• List -View the name and different attributes of files on the system.
Higher-level operations, such as duplicate, can normally be performed through combinations of the above.
Access Control
* One method is to have hard Access Control Lists, ACL, which specify exactly what access is allowed or denied for specific users or groups.
• The AFS uses this system for distributed process.
• Control is very finely adjustable, but may be hard particularly when the
specific users involved are unknown. ( AFS permits some wild cards, so for example all users on a certain remote system may be trusted, or a given username may be trusted when accessing from any remote system. )
* UNIX uses a set of 9 process control bits, in three groups of three. These correspond to R, W, and X allows for each of the Owner, Group, and Others. ( See "man chmod" for full details. ) The RWX bits control the following privileges for regular files and directories:
* Extra there are some special bits that can also be applied:
• The set user ID ( SUID ) bit and/or the set group ID ( SGID ) bits applied to executable files temporarily change the identity of whoever runs the program to
match that of the owner / group of the implementable program. This allows users running particular programs to have access to files ( while running that program ) to which they would normally be unable to access. Setting of these two bits is usually constricted to root, and must be done with caution, as it introduces a
potential security leak.
• The sticky bit on a directory edits write permission, allowing users to only
delete files for which they are the owner. This permits everyone to create files in
/tmp, for example, but to only remove files which they have created, and not anyone else's.
• The SUID, SGID, and sticky bits are implies with an S, S, and T in the positions for execute permission for the user, group, and others, respectively. If the letter is lower case, ( s, s, t ), then the corresponding execute aquisition is not also given. If it is upper case, ( S, S, T ), then the corresponding execute aquisition IS given.
• The numeric form of chmod is required to set these advanced bits.
* Windows alters files access through a simple GUI:
Other Protection Approaches and Issues
* Some systems can apply passwords, either to individual files, or to particular sub-directories, or to the whole system. There is a trade-off between the number of passwords that must be maintained ( and remembered by the users ) and the amount of information that is endangered to a lost or forgotten password.
* Older systems which did not originally have multi-user file access permissions (DOS and older versions of Mac ) must now be furnished if they are to share files on a network.
* Access to a file requires aquire to all the files along its path as well. In a cyclic directory structure, users may have different acquire to the same file retrieved through different paths.
* Sometimes just the knowledge of the existent of a file of a certain name is a private concern. Hence the difference between the R and X bits on UNIX directories.