Tho*_*ent 5 security xorg sudo x11 xhost
上下文:将 GUI 应用程序作为 linux 服务启动。我考虑过使用 GUI 前端制作一个无头守护程序,但现在涉及的代码太多了。该服务必须在用户登录时启动,它应该在用户 shell 中启动(文件权限在这里很重要)。不需要 root 交互(从 RPM 自动安装)。此外,系统(root)必须能够启动和停止此服务以执行由 cron 调用的维护任务。
到目前为止,我设法做到了,但我有关于它的安全问题:一旦用户“用户名”登录,以下内容是否会破坏某些 X 服务器的安全性?
在“/home/username”中创建的 .xinitrc,在启动 Windows 管理器之前调用 xhost
xhost + local:username
exec $WINDOWMANAGER
Run Code Online (Sandbox Code Playgroud)使用自定义编辑器修改“/etc/sudoers”以添加这些行
username localhost = NOPASSWD: /etc/init.d/my-daemon
Defaults env_keep += "DISPLAY XAUTHORITY"
Run Code Online (Sandbox Code Playgroud)服务脚本'/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'
Run Code Online (Sandbox Code Playgroud)my-daemon 服务未在任何级别启动(即使在级别 5 上也未准备好显示)
chkconfig --del my-daemon
Run Code Online (Sandbox Code Playgroud)通过“/etc/xdg/autostart/”中的 .desktop 文件和以下脚本自动启动守护进程
#!/bin/bash
sudo /etc/init.d/my-daemon start
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2368 次 |
| 最近记录: |