xhost(本地)和 sudo xauthority 转发的安全性

xhost(本地)和 sudo xauthority 转发的安全性

上下文:将 GUI 应用程序作为 Linux 服务启动。我考虑过制作一个带有 GUI 前端的无头守护进程,但现在涉及的代码太多。该服务必须在用户登录时启动,它应该在用户 shell 中启动(文件权限在这里很重要)。不需要 root 的交互(从 RPM 自动安装)。另外,系统(root)必须能够启动和停止该服务才能执行 cron 调用的维护任务。

到目前为止我设法做到了,但我有关于它的安全问题:一旦用户“用户名”登录,以下内容是否会破坏某些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
    

相关内容