復元時の仮想端末のロック

復元時の仮想端末のロック

多くの画面ライブラリ(私のものi3ロック) は他の仮想端末へのアクセスをブロックしません。つまり、VTでセッションを開くと、デスクトップがロックされていても(復元したときなど)、悪意のある人がVTに切り替えてすべての操作を実行できることを意味します。

時にはVTに切り替えてからグラフィック環境に戻り、VTからログアウトするのを忘れてしまうので、これは私にとって本当の問題です。

質問は次のとおりです。既存の画面ロックにVTロックを追加するには?

Arch Linux wikiでは、以下をお勧めします。XorgでVTを無効にする、Xサーバーの次の構成を使用します。

Section "ServerFlags"
    # disable VT switching:
    Option "DontVTSwitch" "True"
    # disable “zapping”, ie. killing the X server with Ctrl-Alt-Bksp:
    Option "DontZap"      "True"
EndSection

上記のように、私はVTを使用しているので、これはオプションではありません。おそらく1つの解決策はこれらのオプションを動的に設定してリセットすることですが、少なくとも通常(setxkbmapキーボードレイアウトなどxset)実行時にXサーバーオプションを変更する方法が見つかりませんでした。可能ですか?

私はまた、このコマンドがvlock -aテキストベースのVTから呼び出されたときにセッションをロックし、VT遷移を無効にすることを発見しました。ただし、グラフィック環境では機能しませんが、とにかくグラフィック画面ライブラリには重複します。

この問題をどのように解決できますか?

ベストアンサー1

私はあまりエレガントな方法でこれを行いました。まず、最初の端末chvt(マイロッカーが実行される場所)に変更し、slock名前の付いたデバイスでキーを無効にしてから有効にすると正常に動作するようです。F1F12xmodmapsystemdsleep.targetresume.target

  • systemd単位:
    [Unit]  
    Description=Disable Switching VTS when locked  
    Before=sleep.target
    
    [Service]  
    User=root  
    Type=forking  
    Environment=DISPLAY=:0  
    ExecStartPre=chvt 1  
    ExecStart=/path/to/disableVTS.sh
    
    [Install]  
    WantedBy=sleep.target
    
  • disableVTS.shスクリプト:
    #!/bin/sh  
    xmodmap -e 'keycode 67 ='  
    xmodmap -e 'keycode 68 = '  
    

おすすめ記事