Bug 1042651

Summary: getfacl reports incorrect effective rights mask for file owner
Product: Red Hat Enterprise Linux 6 Reporter: William Brown <william>
Component: aclAssignee: Kamil Dudka <kdudka>
Status: CLOSED NOTABUG QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: low Docs Contact:
Priority: unspecified    
Version: 6.6CC: sct
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-13 14:21:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description William Brown 2013-12-13 01:23:57 UTC
Description of problem:
When using acl's, the effective rights mask is incorrectly calculated for the file owner.

An example is the following:

 getfacl test 
# file: test
# owner: USERNAME
# group: GROUPNAME
user::rw-
user:USERNAME:rwx		#effective:r--
group::r--
mask::r--
other::r--

Notice that the effective rights as determined by the mask state r--, while the user has rwx. Attempting to write or execute the file results in a successful operation. 

If the acl line is the file owner, the effective calculation should not be displayed, as this provides a false description of the state of the permissions applying to that user.

How reproducible:
Always

Steps to Reproduce:
touch test
setfacl -m u:USERNAME:rwx test
setfacl -m m::r test

Comment 2 Kamil Dudka 2013-12-13 14:21:45 UTC
(In reply to William Brown from comment #0)
> user::rw-

This ^^^ ACL entry takes precedence when the file is accessed by the owner.

> user:USERNAME:rwx		#effective:r--

The effective rights is just the rights of the particular ACL entry masked by the effective rights mask.  It does not mean that it will take any effect in the end.

> Notice that the effective rights as determined by the mask state r--, while
> the user has rwx. Attempting to write or execute the file results in a
> successful operation. 
> 
> If the acl line is the file owner, the effective calculation should not be
> displayed, as this provides a false description of the state of the
> permissions applying to that user.

Then you are looking for the ACL entry 'user::rw-' instead of the one for a named user.  Please consult the ACCESS CHECK ALGORITHM section of the acl(5) man page.