From: Sami Kerola <kerolasa@iki.fi>
To: util-linux@vger.kernel.org
Cc: kerolasa@iki.fi
Subject: [PATCH 09/17] write: change determination can user write to a terminal
Date: Tue, 27 Aug 2013 19:06:11 +0100 [thread overview]
Message-ID: <1377626779-26030-9-git-send-email-kerolasa@iki.fi> (raw)
In-Reply-To: <1377626779-26030-1-git-send-email-kerolasa@iki.fi>
Earlier test failed when user had write permission, but was not in
special group that owns terminal devices, usually tty.
This made write(1) to fail for root, if the root did not happen to be in
tty group. In this commit root is granted ot write to anyone, even if
they have mesg(1) turned off. For an user who is trying to write to own
other session the group write bit is significant only for whether mesg(1)
are enabled.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
---
term-utils/write.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/term-utils/write.c b/term-utils/write.c
index cb3b044..1738694 100644
--- a/term-utils/write.c
+++ b/term-utils/write.c
@@ -73,7 +73,7 @@ static void __attribute__ ((__noreturn__)) done(int);
int term_chk(char *, int *, time_t *, int);
int utmp_chk(char *, char *);
-static gid_t myegid;
+static gid_t root_access;
static void __attribute__ ((__noreturn__)) usage(FILE * out)
{
@@ -120,7 +120,7 @@ int main(int argc, char **argv)
usage(stderr);
}
- myegid = getegid();
+ root_access = !getegid();
/* check that sender has write enabled */
if (isatty(fileno(stdin)))
@@ -299,8 +299,9 @@ int term_chk(char *tty, int *msgsokP, time_t * atimeP, int showerror)
return 1;
}
- /* group write bit and group ownership */
- *msgsokP = (s.st_mode & (S_IWRITE >> 3)) && myegid == s.st_gid;
+ *msgsokP = !access(path, W_OK);
+ if (!root_access && *msgsokP)
+ *msgsokP = s.st_mode & S_IWGRP;
*atimeP = s.st_atime;
return 0;
}
--
1.8.4
next prev parent reply other threads:[~2013-08-27 18:07 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-27 18:06 [PATCH 00/17] pull: term-utils changes with emphasis on last(1) Sami Kerola
2013-08-27 18:06 ` [PATCH 02/17] wall: send message also to sessions opened by user 'sleeper' Sami Kerola
2013-08-27 18:06 ` [PATCH 03/17] last: fix typo Sami Kerola
2013-08-27 18:06 ` [PATCH 04/17] wall: sync usage() with howto-usage-function.txt Sami Kerola
2013-08-27 18:06 ` [PATCH 05/17] mesg: " Sami Kerola
2013-08-27 18:06 ` [PATCH 06/17] wall: line wrap at column 79 also when line has tab chars Sami Kerola
2013-08-27 18:06 ` [PATCH 07/17] docs: add --present to last(1) manual page Sami Kerola
2013-08-27 18:06 ` [PATCH 08/17] docs: add note to wall(1) about sessions which will not get message Sami Kerola
2013-08-27 18:06 ` Sami Kerola [this message]
2013-08-27 18:06 ` [PATCH 10/17] lib/time-util: copy time parsing functions from systemd Sami Kerola
2013-08-29 10:11 ` Karel Zak
2013-08-29 18:02 ` Sami Kerola
2013-08-27 18:06 ` [PATCH 11/17] last: parse easy to use time formats Sami Kerola
2013-08-29 10:09 ` Karel Zak
2013-08-29 18:01 ` Sami Kerola
2013-08-27 18:06 ` [PATCH 12/17] last: add --since time spec option Sami Kerola
2013-08-27 18:06 ` [PATCH 13/17] docs: add --since and time option formats to last(1) manual Sami Kerola
2013-08-27 18:06 ` [PATCH 14/17] last: fix --present option logic error Sami Kerola
2013-08-27 18:06 ` [PATCH 15/17] last: use configuration struct Sami Kerola
2013-08-29 10:15 ` Karel Zak
2013-08-29 18:06 ` Sami Kerola
2013-09-02 9:10 ` Karel Zak
2013-08-27 18:06 ` [PATCH 16/17] last: add --time-format with iso-8601 format Sami Kerola
2013-08-27 18:06 ` [PATCH 17/17] docs: add --time-format to last(1) manual page Sami Kerola
2013-09-02 9:59 ` [PATCH 00/17] pull: term-utils changes with emphasis on last(1) Karel Zak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1377626779-26030-9-git-send-email-kerolasa@iki.fi \
--to=kerolasa@iki.fi \
--cc=util-linux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox