我有一个简单的场景来演示这个问题的用例
- 以以下身份登录 Linux当前用户
- 启动 bash 终端
- xauth 列表 $DISPLAY
mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
- 更改用户名
- 苏——其他用户
xauth add mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
- 眼睛
无论如何,这就是计划。现实情况是我在xauth add
命令上遇到超时错误
xauth: timeout in locking authority file /home/currentuser/.Xauthority
...因为它正在看当前用户。所以我无法实现目标,xeyes
使用其他用户登录。
有没有办法实际登录其他用户帐户?或者这个概念一开始就偏离了轨道?
类似/相关问题:
答案1
我一直在做更多的阅读和测试。我有一个解决方案,如果不是完整的解释。
- 以以下身份登录 Linux
currentuser
- 启动
bash
终端 - xauth 列表 $DISPLAY
mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
- 更改用户名
su -
otheruser
XAUTHORITY=/home/
otheruser
/.Xauthority
xauth add mint/unix:0 MIT-MAGIC-COOKIE-1 7b00a8e53b8d9e579c2eaf5009561fa4
xeyes
两个最大的区别是步骤#4 和#5。看着su
手册页显示:
如果使用 --login,则 $TERM、$COLORTERM、$展示, 和 $权威如果设置了环境变量,则会复制它们。
老实说,我在开始xeyes
工作后才发现了这条信息(的重要性)。所以首先要做的就是使用
su
-
otheruser
使用单破折号意味着环境是由脚本设置的,并且不是从当前用户。默认情况下,.Xauthority
文件保护设置为仅限所有者访问:
-rw------- 1
currentuser
currentuser
54 Dec 26 23:21
**.Xauthority**
所以当XAUTHORITY
指向currnetuser
的文件,文件打开失败。因此第二个变化:
XAUTHORITY=/home/
otheruser
/.Xauthority
回想一下,这是环境变量之一复制的与
su
命令。
我怀疑唯一的第二个更改是必要的,对于我的使用来说,我想要一个“良好”的登录其他用户,就好像他/她登录到桌面或通过 ssh 登录一样。
最后的优势点;由于DISPLAY
变量也被复制,因此您不需要设置和导出DISPLAY
循环所需的值ssh
。
进步中
每次您登录时都可以苏;第一步是设置XAUTHORITY
环境变量指向本地
~/.Xauthority
文件。
最后是环境变量:XAUTHORITY
指出导致*currentuser*
事情无法进行的原因。希望下一个人发现他们节省了很多时间!