为什么 tmux 会话中不考虑用户权限修改?

为什么 tmux 会话中不考虑用户权限修改?

我通过 SSH 连接到 debian 服务器,为了避免同时建立多个连接,我使用 tmux。

我更改了目录的权限(此处为/opt/syncserver),并将所有者设置为组和用户www-data。该目录的权限相当于770in chmod,表示rwxrwx---(对所有者和组进行读/写/执行)。

然后,我将主要用户(我们将user1在此处调用)添加到该组中www-data,因为他以前不在其中。然后我尝试 cd 进入新修改的目录,但没有成功(Permission denied错误)。

在同一个 tmux 会话中创建新的 shell 也不能解决问题(请参阅此问题的可能重复部分)。

我尝试启动另一个 SSH 会话,仍然使用同一用户,并且进入目录没有问题。

在 tmux 会话中创建的新 shell 如何不考虑权限的修改?有没有办法解决这个问题,或者我完全错了,一开始就做错了什么?

创建新的 tmux 会话(另一个会话仍连接)也无法解决问题。我猜完全重启 tmux 应该可以解决问题,但我想避免这种情况并知道为什么会发生这种情况。

答案1

在 tmux 会话中创建的新 shell 如何不考虑权限的修改?

与进程关联的 uid、gid 和补充组仅在登录时重置。在 tmux 会话中创建的新 shell 不是新登录,它们只是 tmux 进程的新子进程。

要更新您的群组成员资格,您重新登录,或使用一组非常小的命令(newgrpsusudo)中的一个,这些命令将使用重新初始化的组启动子 shell(但这些命令不会帮助您重新初始化已经运行的进程(如 tmux)的凭据)。

相关内容