标签: xhost

这个 `xhost ...` 命令有什么作用?

请帮我理解这行命令:

xhost +SI:localuser:lightdm
Run Code Online (Sandbox Code Playgroud)

参考这个职位的答案,也建议,如果有一个更好的办法,为什么多数民众赞成需要。我无法从手册页中获得太多信息,因此我希望有一些更详细的答案以使其变得简单。(我应该用我的用户名替换 localuser 吗,这是否类似于添加到组中?我知道 + 用于添加但不理解 SI 或 si !)

还请提及用户如何添加到“允许建立连接的列表”中以及这意味着什么。另外,我如何检查当前列表?

x11 x-server xhost

10
推荐指数
1
解决办法
3万
查看次数

如何在 Wayland 下以 root 身份运行图形应用程序

在新的 Wayland 显示服务器下,多个需要 root 权限的应用程序无法运行。我实际上有一个答案(解决该问题的一种方法)。我欢迎任何更好的解决方案或批评。

此问题的许多其他答案建议将 root 添加到 xhost,这虽然解决了问题,但稍微破坏了 Wayland 安全模型。最好只在程序运行期间将 root 添加到 xhost,无论是 synaptic 还是 gparted 或任何一个。

古夫:

编辑 gufw.desktop 文件(Debian 10 中的 /usr/share/applications/gufw.desktop)并更改以下行:

Exec=gufw

Exec=sh -c "xhost +si:localuser:root && gufw && xhost -si:localuser:root"

突触:

受到以下帖子的启发:https://discourse.ubuntu.com/t/adding-applications-to-start-up/9288 编辑 /usr/bin/synaptic-pkexec 以注释掉 zenity 警告消息(假设是 Debian 10)并更改行:

exec "/usr/sbin/synaptic" "$@"

xhost +si:localuser:root
pkexec "/usr/sbin/synaptic" "$@"
xhost -si:localuser:root
Run Code Online (Sandbox Code Playgroud)

我想其他程序大多可以像 gufw 一样进行修改。这并不能解决旧程序以 root 身份运行所有内容(包括 GUI)的根本问题,但至少它们可以像以前一样运行。

root wayland synaptic ufw xhost

8
推荐指数
1
解决办法
6875
查看次数

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

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

到目前为止,我设法做到了,但我有关于它的安全问题:一旦用户“用户名”登录,以下内容是否会破坏某些 X 服务器的安全性?

  1. 在“/home/username”中创建的 .xinitrc,在启动 Windows 管理器之前调用 xhost

    xhost + local:username
    exec $WINDOWMANAGER
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用自定义编辑器修改“/etc/sudoers”以添加这些行

    username localhost = NOPASSWD: /etc/init.d/my-daemon
    Defaults env_keep += "DISPLAY XAUTHORITY"
    
    Run Code Online (Sandbox Code Playgroud)
  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'
    
    Run Code Online (Sandbox Code Playgroud)
  4. my-daemon 服务未在任何级别启动(即使在级别 5 上也未准备好显示)

    chkconfig --del my-daemon
    
    Run Code Online (Sandbox Code Playgroud)
  5. 通过“/etc/xdg/autostart/”中的 .desktop 文件和以下脚本自动启动守护进程

    #!/bin/bash
    sudo /etc/init.d/my-daemon start
    
    Run Code Online (Sandbox Code Playgroud)

security xorg sudo x11 xhost

5
推荐指数
0
解决办法
2368
查看次数

如何允许第二个本地用户访问 DISPLAY 0

我有带有两个用户帐户的基本台式机。我想允许第二个用户(不是启动 X 的用户)访问 xserver 并运行 GUI 程序。

我使用登录用户的 xhost 进行了此工作,但这似乎不再起作用。

xhost +SI:localuser:fred
Run Code Online (Sandbox Code Playgroud)

现在,如果我执行 su - fred 并尝试任何需要 X 的操作,我会收到一条错误消息,表明它无法访问显示器。

$ xhost
xhost:  unable to open display ""
Run Code Online (Sandbox Code Playgroud)

请不要回复如何使用vnc、ssh或远程访问。这不是问题所在。

感谢您对如何做到这一点的任何帮助,它阻止了我工作。

display xhost

5
推荐指数
1
解决办法
6352
查看次数

xhost +local 是多长时间:活动

有人能告诉我以下命令是否是永久性的吗?

xhost +local:
Run Code Online (Sandbox Code Playgroud)

还是在我关闭应用程序、会话或重新启动后重置?

或者我是否需要在执行以下命令之后才能撤消上述命令?

xhost -
Run Code Online (Sandbox Code Playgroud)

x11 xhost

5
推荐指数
1
解决办法
3001
查看次数

Xauthority 问题 xdpyinfo: 无法打开显示“”。

我试图在启用 X windows 端口转发后运行程序。

我在 /etc/ssh/sshd_config 中的 sshd_config 文件配置为:

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)

我在 /etc/ssh/ssh_config 中的 ssh_config 文件有:

Host *
ForwardAgent yes
ForwardX11 yes
Run Code Online (Sandbox Code Playgroud)

我尝试启用 X Windows 端口转发

lemon:~ # ssh -X localhost
lemon:~ # echo $DISPLAY

lemon:~ # /usr/bin/SMclient
xdpyinfo:  unable to open display "".
Unable to launch GUI due to X server display setting problem, Exiting .
Run Code Online (Sandbox Code Playgroud)

所以 $DISPLAY 设置为空。我已经尝试了我在网上看到的所有内容。最初没有 .Xauthority 文件,所以我从 /var/run/gdm/auth-for--/database 复制并重命名文件 .Xauthority

然后我尝试

lemon:~ # xauth generate :0 . trusted
Invalid MIT-MAGIC-COOKIE-1 keyxauth: …
Run Code Online (Sandbox Code Playgroud)

ssh x11 sshd xauth xhost

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

xhost ×6

x11 ×4

display ×1

root ×1

security ×1

ssh ×1

sshd ×1

sudo ×1

synaptic ×1

ufw ×1

wayland ×1

x-server ×1

xauth ×1

xorg ×1