
/etc/tmux.confを介してセッションをロックするように設定されたtmuxを実行しています。
set-option -g lock-command "/usr/bin/vlock -c"
set-option -g lock-after-time 300
(意図は、GNUを置き換えて、screen
私が使用しているさまざまな端末エミュレータでより良いパフォーマンスを発揮することを確認することです。GNUはidle 300 lockscreen
設定に含まれています。)
時々セッションをロックし、数日間そのままにしておくと、セッションに戻ってセッションがvlock
私のCPUを大部分消費していることを確認できます(96-98とtop
表示)。%CPU
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19002 root 20 0 48176 8888 1040 R 98.7 1.8 13:00.60 vlock
これが発生すると、/var/log/secureと/var/log/audit/audit.logの両方に多数のログエントリが表示されます。たとえば、次のようになります。
==> /var/log/audit/audit.log <==
type=USER_AUTH msg=audit(1502738594.043:4705): pid=19002 uid=0 auid=0 ses=14 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=? acct="root" exe="/usr/bin/vlock" hostname=? addr=? terminal=pts/0 res=failed'
==> /var/log/secure <==
Aug 14 20:23:14 hostname.local vlock[19002]: pam_unix(vlock:auth): auth could not identify password for [root]
Aug 14 20:23:14 hostname.local vlock[19002]: pam_succeed_if(vlock:auth): requirement "uid >= 1000" not met by user "root"
ttyコンソールのどれもロックされているように見えません。すべてログアウトしたようです。このプロセスは(少なくともによると)tmux
プロセスの所有者のようです。vlock
ps
# ps -ef | grep vlock
root 19002 4102 0 Aug09 ? 00:21:35 /usr/bin/vlock -c
root 25318 24147 0 20:41 pts/7 00:00:00 grep --color=auto vlock
# ps -ef | grep 4102
root 4102 1 0 Aug02 ? 00:00:00 tmux new-session -t root
root 19002 4102 0 Aug09 ? 00:22:25 /usr/bin/vlock -c
私はこれがtmuxとvlockがそれぞれの端末で何とか「分離」されたことを意味すると思います?
が、それを修正する方法がわかりませんkill -9 19002
。
また、audit.logエントリがSELinux例外がないことを推測しましたが、これはvlockが実行されてから数日後にのみ発生するように見え、これが問題になると思いました。いつも発生する。
繰り返しますが、pam_succeed_if
セキュリティメッセージは次のとおりです。何ユーザー名/パスワードを確認しようとしましたが、ルートのUIDが1000未満であるため失敗しましたが、これを実行するプロセスが見つかりませんでした。また、まだ他のユーザーを設定していないため、UIDが1000を超えるユーザーはありません。もう一度言いますが、これは数日後に現れるのではなく、問題が続くと予想されます。
SSHを介して接続し、tmuxがセッションを再接続またはマージできるようにした場合(tmux new-session -t $USER
)、以前と同じセッションを表示できます。セッションが5分間アイドル状態の場合は、別のSSHセッションを使用して2番目のインスタンスを表示できます。vlock
、そして:tmux
sshd
root 26751 22688 0 21:02 pts/4 00:00:00 /usr/bin/vlock -c
root 22688 22681 0 20:22 pts/4 00:00:00 tmux new-session -t root
root 22681 838 0 20:22 ? 00:00:00 sshd: root@pts/4
root 838 1 0 Aug02 ? 00:00:00 /usr/sbin/sshd -D
私が考えることができる関連バージョン:
- /etc/redhat-release:
CentOS Linux release 7.3.1611 (Core)
- 名前-a:
Linux server.local 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
- tmux-V:
tmux 1.8
- vlock -v:
1.15.5
vlock
BaseやEPELに適した選択肢があるかどうかは気にしません。そうでなければロックではなく強制接続解除lock-command
に設定してみようかと思いますが、ロックパラダイムが好きです。tmux detach-client
この回転待機の問題を回避するにはどうすればよいですか?明らかな欠陥のため、GNU Screenはこれまで以上にリソースを集中しているように見えました。
アップデート#1
いいですね。これで安定して再作成できます。
- SSH経由でサーバーにログイン
- セッションの作成/接続
tmux
(FWIWログインスクリプトでこれを行います) - セッションがアイドル状態になり、ロックを開始します。
- マイワークステーションでSSHクライアントをシャットダウンします(クライアントを完全にシャットダウンしないなど)。
vlock
回転し始める
毎分cronジョブを使用して実行するスクリプトで次のように使用すると、この問題を解決できるようです。
ps -ef \
| grep -F '/usr/bin/vlock' \
| grep -Fv 'grep' \
| awk '$6 == "?" { print $2 }' \
| xargs -r kill -9
...しかし、少しハッキングのように感じます。
より良い提案を歓迎します。
答え1
私も再現できる。 SSHをボックスに入れてvlockし、SSHを終了してvlockを開いたままにします。しばらくして、私たちはこれを得ました...
cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"