Bug 35413 - chmod doesnt fail when it cant modify group permissions
Summary: chmod doesnt fail when it cant modify group permissions
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: fileutils
Version: 7.1
Hardware: i386
OS: Linux
Target Milestone: ---
Assignee: Bernhard Rosenkraenzer
QA Contact: Aaron Brown
URL: http://www.opengroup.org/onlinepubs/0...
Keywords: Security
Depends On:
TreeView+ depends on / blocked
Reported: 2001-04-10 03:30 UTC by lumpy_
Modified: 2007-04-18 16:32 UTC (History)
3 users (show)

Clone Of:
Last Closed: 2001-05-21 20:23:01 UTC

Attachments (Terms of Use)

Description lumpy_ 2001-04-10 03:30:51 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; FreeBSD 4.2-STABLE i386)

chmod does not fail when it cant set group permissions properly.

Reproducible: Always
Steps to Reproduce:
1.as root:  touch testfile; chown nonrootuser:root file
2.as nonrootuser: chmod 2777 file
3. notice how chmod does not fail, and how it returns 0, yet it failed

Actual Results:  every time, it works

Expected Results:  for chmod to report an error, at least in its return

in bsd this orks properly

Comment 1 Bernhard Rosenkraenzer 2001-05-21 18:59:56 UTC
The chmod() system call returns 0 under those conditions, so the real fix 
should be in the kernel.

FreeBSD doesn't change the permissions on the file at all when it gets the 
chmod() system call and returns EPERM, we currently change the permissions to 
0777 (stripping off setgid) and return 0.

What does POSIX say?

Comment 2 Arjan van de Ven 2001-05-21 20:05:08 UTC
Alan: reason this is a bug ?

Comment 3 Arjan van de Ven 2001-05-21 20:17:22 UTC
SuS says:

      In order to ensure that the S_ISUID and S_ISGID bits are set, an
      application requiring this should use stat() after a successful
      chmod() to verify this.

so the chmod(1) program should do a stat(2) on a file after doing chmod(2).

Comment 4 Bernhard Rosenkraenzer 2002-08-29 22:43:47 UTC
Fixed in 4.1.9-10

Note You need to log in before you can comment on or make changes to this bug.