根据我自己的经验,su-用户用于破解 SSH X11 身份验证。网上有很多帖子解释如何使用xauth列表和添加xauth在会话之间复制 MIT-COOKIE。
然而,出于某种原因,这不再是必要的。
当我使用登录时ssh -X 用户@主机,我像往常一样看到以下内容:
-rw-------- 1 usera usera 63 七月 25 18:17 .Xauthority
当我做su 用户b,系统自动创建并使用以下内容:
-rw-------- 1 userb userb 63 七月 25 18:18.xauthpNLBVw
新的 .xauth 文件包含前一个用户的 MIT-COOKIE 副本,从而允许我运行 X11 应用程序。这不一定是一个坏主意,但这是如何实现的。我尝试过 RHEL 5-7,在所有这些系统上都是一样的,尽管没有任何改变可以解释这种新行为。
有任何想法吗?谢谢!
答案1
这是由pam_xauth.so
您可以在 中找到文档的模块实现的man pam_xauth
。如果你查看最后一行,/etc/pam.d/su
你应该找到一行
session optional pam_xauth.so
当您这样做时它会运行该模块su - userb
。在环境中,变量XAUTHORITY
将被设置为带有复制的 cookie 的临时文件。该文件在会话结束时被删除。
有趣的是,如果usera
只想将其显示 cookie 转发给一组给定的用户,则可以将它们列在 中~usera/.xauth/export
。同样,userb
可以列出将接受来自 的 cookie 的用户~userb/.xauth/import
。