use*_*494 6 ssh xorg x11 xauth
我正在运行 Suse Linux 11.04 系统。我的问题是,当我以 root 身份重新登录 shell 时,xauth*****会在/root/目录中创建一个新的 Xauthority 表单文件。从 shell 退出后,会.xauth留下一些文件。我在其他系统上尝试过,但这不会发生。另外,为什么XAUTHORITY只为root系统中的其他用户而不是为我的其他用户设置了环境变量?
man xdm关于XAUTHORITY环境变量的说明如下
DisplayManager.DISPLAY.userAuthDir
当 xdm 无法写入通常的用户授权文件 ($HOME/.Xauthority) 时,它会在此目录中创建一个唯一的文件名,并将环境变量 XAUTHORITY 指向创建的文件。它默认使用 /tmp。
所以在我的系统中,我这样做:
xauth
Run Code Online (Sandbox Code Playgroud)
使用权限文件 /root/.xauthPpRsfU
xauth>
Run Code Online (Sandbox Code Playgroud)
我退出[Ctrl+d]并重新登录,我看到现在它开始使用不同的.xauth*文件。
xauth
Run Code Online (Sandbox Code Playgroud)
使用权限文件 /root/.xauthq1xt4z
xauth>
Run Code Online (Sandbox Code Playgroud)
为什么xauth每次登录时都需要继续创建不同的文件?另外,当默认位置是 时,为什么它在 root 中/tmp/?我没有在配置文件中设置.DisplayManagaer.DISPLAY.userAuthDir为。/tmpxdm
我在任何其他系统上都没有看到这种行为。在 RHEL 和 Ubuntu 中一切正常。
对于指针,我不是唯一面临这个问题的人。我想这篇文章是类似的:`$XAUTHORITY` 出现在 su+tmux 上的“nowhere”。
有谁知道我该如何解决这个问题?
很久以前,我也问过同样的问题。谁在其流程环境中导出/设置了此变量。幸运的是,有人教我有一个shell脚本。这适用于 Solaris。在 Linux 上,解析进程的父环境可能略有不同。
我什至可以给你当时的对话: https: //groups.google.com/group/comp.unix.shell/browse_thread/thread/a91bf497add5544e/56dd2f64c4029734 ?hl=en&ie=UTF-8&q=mnikhil+who+exported +这个+变量&pli=1#56dd2f64c4029734
envtrace(){
ptree $$ |
while read pid prog
do
/usr/ucb/ps eww $pid
done |
sed -n '
s/^ *//
/^[^0-9]/d
h
s/ .*/:/p
g
s/^.* \('"$1"'=[^ ]*\).*/\1/p
g
/^'"$$"' /q'
}
Run Code Online (Sandbox Code Playgroud)
envtrace 路径 envtrace OSTYPE