xhost(ローカル)およびsudo xauthority配信セキュリティ

xhost(ローカル)およびsudo xauthority配信セキュリティ

コンテキスト:GUIアプリケーションをLinuxサービスとして起動します。 GUIのフロントエンドでヘッドレスデーモンを作成することを検討しましたが、今はあまりにも多くのコードが必要です。サービスは、ユーザーがログインしたときに開始し、ユーザーのシェルから開始する必要があります(ここではファイル権限が重要です)。ルート対話は必要ありません(RPMからのサイレントインストール)。また、cronが呼び出すメンテナンスタスクを実行するには、システム(ルート)がサービスを開始および停止できる必要があります。

これまでやってきましたが、これに関するセキュリティ質問があります。ユーザー「username」がログインすると、次の一部のXサーバーセキュリティが壊れますか?

  1. .xinitrc は '/home/username' に作成され、ウィンドウマネージャを起動する前に xhost を呼び出します。

    xhost + local:username
    exec $WINDOWMANAGER
    
  2. カスタムエディタを使用して「/etc/sudoers」を変更して、次の行を追加します。

    username localhost = NOPASSWD: /etc/init.d/my-daemon
    Defaults env_keep += "DISPLAY XAUTHORITY"
    
  3. サービススクリプト '/etc/init.d/my-daemon'

    #!/bin/bash
    DISPLAY=${DISPLAY:-:0.0}
    export DISPLAY=$DISPLAY
    gnomesu -u username -c 'my-gui-app-bin with-some-arguments'
    
  4. my-daemonサービスはどのレベルでも開始できません(レベル5に表示されても準備はできません)。

    chkconfig --del my-daemon
    
  5. 「/etc/xdg/autostart/」の.desktopファイルと次のスクリプトでデーモンプロセスを自動的に起動します。

    #!/bin/bash
    sudo /etc/init.d/my-daemon start
    

ベストアンサー1

おすすめ記事