![IBM Novell 10 SP1 EAL4 Design Manual Download Page 62](http://html1.mh-extra.com/html/ibm/novell-10-sp1-eal4/novell-10-sp1-eal4_design-manual_4190246062.webp)
5.1.5.2.8 ACL enforcement
The
ext3_permission()
function uses ACLs to enforce DAC. The algorithm goes through the
following steps:
1. Performs checks such as “no write access if read-only file system” and “no write access if the file is
immutable.”
2. For ext3 file systems, the kernel calls the
ext3_get_acl()
to get the ACL corresponding to the
object.
ext3_get_acl()
calls
ext3_xattr_get()
, which in turn calls
ext3_acl_from_disk()
to retrieve the extended attribute from the disk. If no ACL exists, the
kernel follows the permission bits algorithm described previously.
3. For ext3 file systems, the kernel invokes
posix_acl_permission()
. It goes through the
following algorithm:
If the file system user ID of the process matches the user ID of the file object owner,
then
if the
ACL_USER_OBJ
entry contains the requested permissions, access is granted,
else access is denied.
else if the file system user ID of the process matches the qualifier of any entry of type
ACL_USER
,
then
if the matching
ACL_USER
entry and the
ACL_MASK
entry contain the requested permissions, access
is granted,
else access is denied.
else if the file system group ID or any of the supplementary group IDs of the process match the
qualifier of the entry of type
ACL_GROUP_OBJ
, or the qualifier of any entry of type
ACL_GROUP
,
then
if the
ACL_MASK
entry and any of the matching
ACL_GROUP_OBJ
or
ACL_GROUP
entries contain
all the requested permissions, access is granted,
else access is denied.
else if the
ACL_OTHER
entry contains the requested permissions, access is granted.
else access is denied.
The ACL checking function cycles through each ACL entry to check if the process is authorized to access the
object in the attempted mode. Root is always allowed to override any read or write access denials based an
ACL entry. Root is allowed to override an attempted execute access only if an execute bit is set for owner,
group, or other.
For example, consider a file named
/aclfile
, with mode of 640. The file is owned by root and belongs to
the group root. Its default ACL, without the extended POSIX ACL, would be:
# owner: root
# group: root
user:: rw-
group::r--
other::---
The file is readable and writeable by the root user, and readable by users belonging to the root group. Other
users have no access to the file. With POSIX ACLs, a more granular access control can be provided to this
50
Summary of Contents for Novell 10 SP1 EAL4
Page 1: ...SUSE Linux Enterprise Server 10 SP1 EAL4 High Level Design Version 1 2 1...
Page 23: ...11...
Page 29: ...17...
Page 43: ...31...
Page 54: ...42 Figure 5 8 New data blocks are allocated and initialized for an ext3 field...
Page 117: ...105 Figure 5 48 Page Address Translation and access control...
Page 125: ...113 Figure 5 54 31 bit Dynamic Address Translation with page table protection...
Page 126: ...114 Figure 5 55 64 bit Dynamic Address Translation with page table protection...
Page 172: ...160 Figure 5 79 System x SLES boot sequence...
Page 214: ...202...