diff options
author | Jim Meyering <jim@meyering.net> | 1994-07-01 16:53:29 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1994-07-01 16:53:29 +0000 |
commit | 4eb8e70031e17d1d06f9670b2b06aaea08321e61 (patch) | |
tree | 6048b1681b5a723911bc6204392d2dc652640cad /src/chgrp.c | |
parent | a32610143c47068efb501354407ae8c2d0d8e6cd (diff) | |
download | coreutils-4eb8e70031e17d1d06f9670b2b06aaea08321e61.tar.xz |
.
Diffstat (limited to 'src/chgrp.c')
-rw-r--r-- | src/chgrp.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/chgrp.c b/src/chgrp.c index 74438ef93..cac9383d5 100644 --- a/src/chgrp.c +++ b/src/chgrp.c @@ -53,6 +53,7 @@ struct group *getgrnam (); int lstat (); +char *group_member (); char *savedir (); char *xmalloc (); char *xrealloc (); @@ -208,9 +209,22 @@ change_file_group (file, group) describe_change (file, 1); if (chown (file, file_stats.st_uid, group)) { - if (force_silent == 0) - error (0, errno, "%s", file); errors = 1; + if (force_silent == 0) + { + /* Give a more specific message. Some systems set errno + to EPERM for both `inaccessible file' and `user not a member + of the specified group' errors. */ + if (errno == EPERM && !group_member (group)) + { + error (0, errno, "you are not a member of group `%s'", + groupname); + } + else + { + error (0, errno, "%s", file); + } + } } } else if (verbose && changes_only == 0) |