我已经使用 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]
这将锁定终端。需要注意的是,有人仍然可以从另一个终端附加到会话。我也在寻找是否有办法阻止这种情况。