summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2007-01-16 15:17:27 +0000
committerpjd <pjd@FreeBSD.org>2007-01-16 15:17:27 +0000
commit39f3fe7daf5b4cec90afbe413b53ae5f77acad42 (patch)
tree6966c0863775283805235ec14e26ebeccd45ec5e /lib
parent132337be8f66044643e913ec5105dbee302d630b (diff)
downloadFreeBSD-src-39f3fe7daf5b4cec90afbe413b53ae5f77acad42.zip
FreeBSD-src-39f3fe7daf5b4cec90afbe413b53ae5f77acad42.tar.gz
When we try to set set-gid bit with chmod(2) on a file, which we own, but our
effective group ID (and any of our group) doesn't match the group ID of the file, we get EPERM. This doesn't conform POSIX. POSIX requires that we should return 0, but silently clear the set-gid bit.
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/sys/chmod.26
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libc/sys/chmod.2 b/lib/libc/sys/chmod.2
index 0ff95a3..185463d 100644
--- a/lib/libc/sys/chmod.2
+++ b/lib/libc/sys/chmod.2
@@ -28,7 +28,7 @@
.\" @(#)chmod.2 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd December 9, 2006
+.Dd January 16, 2006
.Dt CHMOD 2
.Os
.Sh NAME
@@ -175,6 +175,10 @@ Too many symbolic links were encountered in translating the pathname.
The effective user ID does not match the owner of the file and
the effective user ID is not the super-user.
.It Bq Er EPERM
+The effective user ID is not the super-user, the effective user ID do match the
+owner of the file, but the group ID of the file does not match the effective
+group ID nor one of the supplementary group IDs.
+.It Bq Er EPERM
The named file has its immutable or append-only flag set, see the
.Xr chflags 2
manual page for more information.
OpenPOWER on IntegriCloud