附加到 tmux 会话是否可以受密码保护,类似于 gnu screen?

附加到 tmux 会话是否可以受密码保护,类似于 gnu screen?

我已经使用 gnu screen 多年了,并且一直在考虑切换到 tmux。

我不知道如何使 tmux 在附加到会话时需要密码。在gnu屏幕中,我使用:password命令来设置密码。然后在分离后,后续附加到会话时screen -x需要使用密码才能附加。

如何配置 tmux 来执行相同的操作?我做了一些谷歌搜索,我得到的印象是这是不可能的。这对我来说是一个精彩的表演。我喜欢 tmux,但如果它不支持受密码保护的会话附加,我就无法使用它。

答案1

这对于 tmux 来说还不可能。到目前为止您只能锁定终端。开发人员争论是否有人可以访问系统上的另一个 shell,那么无论如何你都会干杯。

不过,我想出了一个快速解决方案,使用文件权限和属性来锁定事物。我已将其放入 3 个 bash 文件中,您必须将其添加到 $PATH 中。

启动文件

#!/bin/bash

if [[ ! -d ~/.tmux-sessions ]]; then
    mkdir ~/.tmux-sessions
fi

tmux -S ~/.tmux-sessions/secure

一旦你想退出会话,通常使用 ctrl+b,d 来退出——然后你需要运行锁.sh如下所示。

锁.sh

#!/bin/bash

chmod 000 ~/.tmux-sessions
sudo chattr +i ~/.tmux-sessions
sudo -k

这将锁定用于连接 tmux 的套接字。在您从套接字目录中删除不可变属性并将权限更改回正常之前,没有人能够访问它。幸运的是,我们也可以为此创建一个脚本:

附件.sh

#!/bin/bash

sudo chattr -i .tmux-sessions
chmod 770 .tmux-sessions
tmux -S ~/.tmux-sessions/secure attach

这样您就可以运行 Attach.sh,它会要求您输入用户密码才能重新打开。

希望这个技巧有帮助!

仅用于锁定您的终端。

首先你需要安装 vlock。

sudo apt install vlock

或您使用的任何包管理器命令。

然后你设置 tmux 使用 vlock

echo "set-option -g lock-command vlock" >> ~/.tmux.conf

然后当你在 tmux 中时,你可以这样做:

ctrl+b,:lock-session[enter]

这将锁定终端。需要注意的是,有人仍然可以从另一个终端附加到会话。我也在寻找是否有办法阻止这种情况。

相关内容