ユーザーにtmuxの効果を与える

ユーザーにtmuxの効果を与える

見たらSTIG 参照番号 V-230349原文をご覧になり、まとめていただきます。

初期ドアまたはルールのタイトルは次のとおりです。RHEL 8は、シェルの初期化時にセッション制御が自動的に開始されるようにする必要があります。

以下が必要です。

# /etc/profile.d/tmux.sh

if [ "$PS1" ]; then
  parent=$(ps -o ppid= -p $$)
  name=$(ps -o comm= -p $parent)
  case "$name" in (sshd|login) tmux ;; esac
fi

場合によっては、次の情報のみが提供されます。

ディスカッション:Tmuxは、単一の画面で複数の端末を作成、アクセス、および制御できる端末マルチプレクサです。 Red Hat は tmux を推奨セッション制御パッケージとして承認します。

セキュリティの理由や根拠についての言及はありませんが、ルールをウェブ検索すると、それを正当化したいと思われる詳細を読むことができます。また、その後の関連安全規定にも

#  /etc/tmux.conf

set -g lock-command vlock
bind X lock-session
set -g lock-after-time 900 

したがって、この設定を有効にする/etc/profile.d/tmux.shと、15分間文字が入力されない限り、すべてのtmuxセッションにパスワードプロンプトが表示されます。そのtmuxウィンドウ。tmuxtmux.conf

tmux私の質問はそれを[予想通り]使用し、理解する人々のためです(私はtmuxを使用しないので)。これはtmuxを使用する良い方法ですか、それとも悪い方法ですか? Linuxのすべてのターミナルウィンドウにパスワードプロンプトが表示されるようにすることに加えて、つまり、ユーザーが直接入力しなかった場合はexitkill tmuxを使用して正常に続行します。しかし、私の経験では、99%のユーザーはLinuxやtmuxを理解していません。最初の苦情は、終了を入力しましたが、ウィンドウが閉じていないことです。

しかし、tmuxインテリジェントな心の場合tmux、どこでもそのような使用を実施すると、多くのtmuxセッションが開かれ、忘れる危険性はありませんか? ...Tmuxはターミナルマルチプレクサなので、1画面で複数のターミナルを作成、アクセス、制御できます。;だから管理者として、私は自分が知らないことや管理方法を実行したくありません。

答え1

STIGのオンラインバージョン要件exec tmux;これを行うtmuxと、すぐにログアウトする問題は解決されず、ユーザーが2回ログアウトする必要もありません。

これを知らないユーザーは、tmux最終的にセッションを離れてはいけませんtmux。内部でより多くのウィンドウを起動しないため、tmuxシェルを終了するとtmux終了します。

この設定を有効にすると、一部のユーザーは最終的に不利益になります。するそれについて学び、tmux長期セッションに使用します。これらのユーザーは、システムが強制的に起動されるたびに前のtmuxセッション(Ctrlb()に手動で切り替える必要があります。それらユーザーはtmux最小限のオーバーヘッドにもかかわらず、最終的にセッションを離れることができます。

個人的にログインしているユーザーに属する別々のセッションに自動的に再参加するように変更されている限り、この設定は気に入りません。 (似ていますtmux has-session && exec tmux attach-session || exec tmux。)

答え2

screen長年にわたって同様の構成を使用してきましたが、以前のセッションにログインを再接続できました。 (セキュリティ対策ではなく便利な対策であるため、セッションにパスワードは適用されません。)

一般的に言えば、非常にうまく機能します。通常、ネットワーク接続が中断されると、セッションが「分離済み」ではなく「アクティブ」と表示されることがあります。そしてセッションはアイドル状態です(入力/出力なし)。この問題は、シェルまたはそれ自体(サポートされている場合)でアイドルタイムアウトを設定することで解決できますtmux

私が使用したバージョンは、exec screen直接シェルで完全に失敗しました。これがクライアント(プログラム)が呼び出すものです。

ssh -q -tt "$host" \
        "screen -dr $session || screen -S $session -l $* || screen -l $* || screen || bash -i || sh -i"

ここでは$host、リモートターゲットホストを参照し、切断され$sessionたセッションを一致させるために使用される既知のプレフィックスを使用してフォーマットされたセッション名です。

関連情報