通过 SSH 启动 GDM(gnome 显示管理器)会话,无需 root

通过 SSH 启动 GDM(gnome 显示管理器)会话,无需 root

有没有办法通过 SSH 无需 root 即可远程启动 GNOME 会话?

背景

我正在尝试/dev/cdrom -> /dev/sr0通过 SSH 访问远程计算机的 CD 驱动器 ( )。

远程计算机正在运行 Ubuntu 18。

问题是写入驱动器文件 ( /dev/sr0) 的权限在文件 ACL 中设置为gdm用户当没有人登录计算机时(可以通过 进行验证getfacl /dev/sr0)。

当用户通过 GNOME(即亲自)登录计算机时,A​​CL 就会更新以匹配他们的用户。

答案1

如果您使用启用了 X11 转发的 SSH 连接(并且正在运行本地 X11 服务器),则应该能够使用命令在远程服务器上启动 GNOME 会话gnome-session

但您会发现您无法访问 CD 驱动器。

你看,CD驱动器的权限被授予了本地登录的用户仅限,即使登录是在虚拟控制台上以文本模式完成的。不只是针对正在进行 GNOME 会话的人。系统会知道其中的区别。 ACL 分配是通过以下方式完成的udevuaccess分配给设备的标签/lib/udev/rules.d/70-uaccess.rules将确定哪些设备将得到这种处理。

如果您希望能够在通过 SSH 远程登录时使用 CD 驱动器,则需要为您的用户帐户cdrom分配组成员身份。该操作只需执行一次,但需要 root 访问权限。例如,如果您的用户帐户名为helper

sudo usermod -a -G cdrom helper

或者

sudo gpasswd --add helper cdrom

或者

sudo adduser helper cdrom

执行任何一个命令后,您需要注销才能使更改生效。下次登录时,您将成为该组的成员cdrom(除了您之前所属的任何组之外),并且无论您是本地登录还是远程登录,都可以始终使用 CD 驱动器。这就是该cdrom小组的目的。

这里列出了具有类似目的的其他团体:https://wiki.debian.org/SystemGroups

答案2

我通过在 MATE 桌面上以 :1 和小于全屏的分辨率启动 Xnest 来执行此操作。export DISPLAY=:1然后我ssh -Y user@remotehost mate-session会在较小的 Xnest X“服务器”窗口中看到完整的桌面。 (此时 Xnest 既充当 X 服务器又充当 X 客户端)

相关内容