如何(或者是否可能)在 SU 其他用户名下从终端使用 Linux 桌面 X-Server

如何(或者是否可能)在 SU 其他用户名下从终端使用 Linux 桌面 X-Server

我有一个简单的场景来演示这个问题的用例

  1. 以以下身份登录 Linux当前用户
  2. 启动 bash 终端
  3. xauth 列表 $DISPLAY
    • mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
  4. 更改用户名
    • 苏——其他用户
  5. xauth add mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
  6. 眼睛

无论如何,这就是计划。现实情况是我在xauth add命令上遇到超时错误

xauth:  timeout in locking authority file /home/currentuser/.Xauthority

...因为它正在看当前用户。所以我无法实现目标,xeyes使用其他用户登录。

有没有办法实际登录其他用户帐户?或者这个概念一开始就偏离了轨道?


类似/相关问题:

答案1

我一直在做更多的阅读和测试。我有一个解决方案,如果不是完整的解释。

  1. 以以下身份登录 Linuxcurrentuser
  2. 启动bash终端
  3. xauth 列表 $DISPLAY
    • mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
  4. 更改用户名
    • su -otheruser
  5. XAUTHORITY=/home/otheruser/.Xauthority
  6. xauth add mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
  7. xeyes

两个最大的区别是步骤#4 和#5。看着su手册页显示:

如果使用 --login,则 $TERM、$COLORTERM、$展示, 和 $权威如果设置了环境变量,则会复制它们。

老实说,我在开始xeyes工作后才发现了这条信息(的重要性)。所以首先要做的就是使用

  • su-otheruser

使用单破折号意味着环境是由脚本设置的,并且不是从当前用户。默认情况下,.Xauthority文件保护设置为仅限所有者访问:

  • -rw------- 1currentuser currentuser54 Dec 26 23:21**.Xauthority**

所以当XAUTHORITY指向currnetuser的文件,文件打开失败。因此第二个变化:

  • XAUTHORITY=/home/otheruser/.Xauthority

    回想一下,这是环境变量之一复制的su命令。

我怀疑唯一的第二个更改是必要的,对于我的使用来说,我想要一个“良好”的登录其他用户,就好像他/她登录到桌面或通过 ssh 登录一样。

最后的优势点;由于DISPLAY变量也被复制,因此您不需要设置和导出DISPLAY循环所需的值ssh

进步中

每次您登录时都可以;第一步是设置XAUTHORITY环境变量指向本地

  • ~/.Xauthority

文件。

最后是环境变量:XAUTHORITY指出导致*currentuser*事情无法进行的原因。希望下一个人发现他们节省了很多时间!

相关内容