Bug 248366

Summary: chgrp permission denied for file owner
Product: [Fedora] Fedora Reporter: Christopher Beland <beland>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 6   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-07-16 22:09:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Christopher Beland 2007-07-16 14:18:12 UTC
I have a situation where an automated process running as apache needs to share a
file with another user, foo.  For security reasons, it would be preferable if
this file were not readable to other Unix users.  The obvious solution is to
have apache "chgrp foo FILENAME", but chgrp complains that permission to do this
is denied, even though the file is owned by apache and has the group set to
apache.  This does not make much sense to me.  It also seems to have security
implications, because now apache must make the file world-readable in order to
share it.

coreutils-5.97-12.5.fc6

Comment 1 Tim Waugh 2007-07-16 15:13:46 UTC
This is a kernel permission check.  Changing component and reassigning.

Comment 2 Chuck Ebbert 2007-07-16 21:17:58 UTC
apache cannot change a file's group unless apache is a member of the new group.


Comment 3 Christopher Beland 2007-07-16 21:42:01 UTC
Any particular reason for that?  As the file owner, apache can get
read/write/execute access at any time, so it seems that the only thing that
restriction does is prevent sharing access with groups of which it is not a
member. I'm not sure why that would be desirable.

Comment 4 Jarod Wilson 2007-07-16 22:09:59 UTC
Because...

1) user creates script
2) user makes script setgid
3) user changes the group on script to one w/elevated privs that they aren't a
member of
4) user runs setgid script with elevated privs they shouldn't have

BAD.

I'd suggest perhaps making your user foo a member of the apache group if it
needs r/w access to that file.

Comment 5 Christopher Beland 2007-07-16 22:30:15 UTC
Ah, that makes sense.  Thanks for the explanation.