From 98cd8e4cad3afbc542de665e9d025d12b560bc6b Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 8 Mar 2022 11:28:40 +0000 Subject: Add formats for client and server UID and user (for multiuser setups). --- proc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'proc.c') diff --git a/proc.c b/proc.c index 9412cec0..9dcb042e 100644 --- a/proc.c +++ b/proc.c @@ -55,6 +55,7 @@ struct tmuxpeer { struct imsgbuf ibuf; struct event event; + uid_t uid; int flags; #define PEER_BAD 0x1 @@ -296,6 +297,7 @@ proc_add_peer(struct tmuxproc *tp, int fd, void (*dispatchcb)(struct imsg *, void *), void *arg) { struct tmuxpeer *peer; + gid_t gid; peer = xcalloc(1, sizeof *peer); peer->parent = tp; @@ -306,6 +308,9 @@ proc_add_peer(struct tmuxproc *tp, int fd, imsg_init(&peer->ibuf, fd); event_set(&peer->event, fd, EV_READ, proc_event_cb, peer); + if (getpeereid(fd, &peer->uid, &gid) != 0) + peer->uid = (uid_t)-1; + log_debug("add peer %p: %d (%p)", peer, fd, arg); TAILQ_INSERT_TAIL(&tp->peers, peer, entry); @@ -361,3 +366,9 @@ proc_fork_and_daemon(int *fd) return (pid); } } + +uid_t +proc_get_peer_uid(struct tmuxpeer *peer) +{ + return (peer->uid); +} -- cgit From d6306b634e4a044e3380ed984dc7f5e5d67e69ac Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 6 Apr 2022 14:28:50 +0100 Subject: Add an ACL list for users connecting to the tmux socket. Users may be forbidden from attaching, forced to attach read-only, or allowed to attach read-write. A new command, server-access, configures the list. tmux gets the user using getpeereid(3) of the client socket. Users must still configure file system permissions manually. --- proc.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'proc.c') diff --git a/proc.c b/proc.c index a9b1473e..f0eded99 100644 --- a/proc.c +++ b/proc.c @@ -349,6 +349,12 @@ proc_kill_peer(struct tmuxpeer *peer) peer->flags |= PEER_BAD; } +void +proc_flush_peer(struct tmuxpeer *peer) +{ + imsg_flush(&peer->ibuf); +} + void proc_toggle_log(struct tmuxproc *tp) { -- cgit From 3a6d82b7c8d4254fa87959d8cf19b313f5e05480 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 6 Apr 2022 16:39:46 +0100 Subject: Some style nits. --- proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'proc.c') diff --git a/proc.c b/proc.c index f0eded99..67ec214a 100644 --- a/proc.c +++ b/proc.c @@ -202,7 +202,7 @@ proc_start(const char *name) #endif , event_get_version(), event_get_method() #ifdef HAVE_UTF8PROC - , utf8proc_version () + , utf8proc_version() #endif ); -- cgit