diff options
-rw-r--r-- | term-utils/write.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/term-utils/write.c b/term-utils/write.c index 8855c1e93..1b476473f 100644 --- a/term-utils/write.c +++ b/term-utils/write.c @@ -113,8 +113,13 @@ static int check_tty(char *tty, int *tty_writeable, time_t *tty_atime, int showe } if (getuid() == 0) /* root can always write */ *tty_writeable = 1; - else - *tty_writeable = (s.st_mode & S_IWGRP) && (getegid() == s.st_gid); + else { + if (getegid() != s.st_gid) { + warnx(_("effective gid does not match group of %s"), path); + return 1; + } + *tty_writeable = s.st_mode & S_IWGRP; + } if (tty_atime) *tty_atime = s.st_atime; return 0; |