Access control list access authorization
The owner of the information resource is responsible for managing access rights. Resources are protected by permission bits, which are included in the mode of the object.
For AIXC ACL, the permission
bits define the access permissions granted to the owner of the object, the
group of the object, and for the others
default class. AIXC ACL type supports three different
modes of access (read, write, and execute) that can be granted separately.
When a user logs in to an account (using the login or su command), the user IDs and group IDs assigned to that account are associated with the user's processes. These IDs determine the access rights of the process.
- For each access control entry (ACE) in the access control list (ACL), the identifier list is compared to the identifiers of the process. If there is a match, the process receives the permissions and restrictions defined for that entry. The logical unions for both permissions and restrictions are computed for each matching entry in the ACL. If the requesting process does not match any of the entries in the ACL, it receives the permissions and restrictions of the default entry.
- If the requested access mode is permitted (included in the union of the permissions) and is not restricted (included in the union of the restrictions), access is granted. Otherwise, access is denied.
USER:fred, GROUP:philosophers, GROUP:software_programmer
fred
and
a group set of: philosophers, philanthropists, software_programmer, doc_design
fred
and
a group set of: philosophers, iconoclasts, hardware_developer, graphic_design
USER:fred, GROUP:philosophers
In other words, the identifier list in the ACE functions is a set of conditions that must hold for the specified access to be granted.
The discretionary access control mechanism allows for effective access control of information resources and provides for separate protection of the confidentiality and integrity of the information. Owner-controlled access control mechanisms are only as effective as users make them. All users must understand how access permissions are granted and denied, and how these are set.
who
strings
defined in the ACE against the process's credentials. If a match occurs, the
access rights requested are checked against the access rights defined in the
ACE. If any of the access rights are allowed, those will be taken out, and
the compare operation continues on to the next ACE. This process is continued
until either the ACL end is reached, or all the access rights are met, or
if any of the access rights requested are denied. The following steps capture
the access checking in the case of a file system object with an associated
NFS4 ACL: - For each access control entry (ACE) in the access control list (ACL),
the identifier list is compared to the identifiers of the process. Identity
checks include the user ID or group ID defined in the ACE. Also, if the identity
is defined as special with strings such as
OWNER@
, a match will occur if the calling process is by the owner of the file. If there is a match, the process receives the access rights defined for that entry. Else, continue to the next ACE. - Requested access rights are compared with the access rights retrieved from ACE entry. If any of the access rights requested are explicitly denied by the ACE, then the access checking process is ended, and the requesting process will be denied access.
- If some of the requested access rights are met by the ACE, then those access rights will be taken out from the requests access rights list, and the compare operation continues to the next ACE.
- If all of the requested access rights are met by the ACEs, then the requested access is allowed.
- If ACL end is reached before all of the requested access rights are resolved, then the access is denied.
Note that apart from the ACL type-based access checks, individual physical file systems might also choose to provide for privilege-based access to the file system objects. For example, an owner might always at least have the permission to modify the ACL, irrespective of the existing ACL access rights. A process with a user ID of 0 is known as a root user process. These processes are generally allowed all access permissions. However, if a root user process requests execute permission for a program, access is granted only if execute permission is granted to at least one user.
All access permission checks for these objects are made at the system call level when the object is first accessed. Because System V Interprocess Communication (SVIPC) objects are accessed statelessly, checks are made for every access. However, it is possible that checks are made by the physical file systems at open time of the file system object and not at the time of read or write operation. For objects with file system names, it is necessary to be able to resolve the name of the actual object. Names are resolved either relatively (to the process' working directory) or absolutely (to the process' root directory). All name resolution begins by searching one of these.