機密が見えるかもしれないshell作業をストリーミングする方法が見つかりそう
わーい!!
...じゃ、なくて、説明をします
Shell作業配信の現状の怖さ
shell作業してること、よくあると思います。 人類の殆どの人間が、人生の訳80%程はshellに費やすと言われています(当社調べ)ので、 その作業を配信に流したくなることも勿論あるでしょう。
あるんですよ。
その時に困るのが、「作業中に必要or非表示にできない機密情報」の扱いです。
例えば:
ユーザー名(ディレクトリ構造からバレることがあります)
Token類(APIなど)
RSAキー
などなど...
これらが映るかもしれない作業は配信に載せることができませんよね。怖いので。
指定の文字列を隠して配信をする方法!!!!
ですが!!この問題は意外と簡単に倒すことができます。
そう、*tmuxならね*
tmux知らない人はこんなニッチな記事には来ないと思うのですが簡単に説明しておくと、 GNU screenやbyobuと同じ「ターミナルマルチプレクサ」というプログラムです。
あとはggってください
手順!!
具体的な方法に移ります。
簡単です。
tmuxで作業を開きます。
使用しているターミナルで別ウィンドウを開きます。
tty
コマンドで、使用している仮想端末を確認してください(このウィンドウを配信に使います)2.で開いたウィンドウで、
tput civis; unset PS1
します作業しているtmux windowの中で、新しくpaneを開きます
そこで
clear ><2.で確認した仮想端末>; tmux capture-pane -t 1 -pe | sed 's/<隠したい情報>/置換して代わりにおく文字列/g' > <2.で確認した端末>
します。するとあら不思議!!2.で開いたウィンドウにそっくりそのまま、隠したい情報だけ隠されて表示されました!!
あとはこれをループさせて、裏で走らせればいいだけです!!
ちなみに寝る前にお風呂で思いついてしまい、とりあえず試してみたら動いたみたいなアイデアなのでまだ実装していませんが、のちに実装します。
多分。