AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 51005
Accepted
Phil
Phil
Asked: 2009-08-07 08:19:12 +0800 CST2009-08-07 08:19:12 +0800 CST 2009-08-07 08:19:12 +0800 CST

如何使用 xauth 在 linux 上通过其他用户运行图形应用程序

  • 772

我的常规用户帐户是 user1。我为某些 x 应用程序创建了单独的 user2,我想在以 user1 身份登录 x 时运行该应用程序,但以某种方式阻止它对 user1 数据的读/写访问。我认为我可以使用 xauth 和 sudo/su 从 user1 到 user2 来运行这个应用程序。我该怎么做呢?我不确定如何配置 xauth。

linux sudo
  • 10 10 个回答
  • 220056 Views

10 个回答

  • Voted
  1. Randall
    2009-08-08T10:11:09+08:002009-08-08T10:11:09+08:00

    要选择性地使用 xauth ,作为 user1 运行:

    xauth list|grep `uname -n`
    

    这将为您打印十六进制密钥授权条目。您也可以拥有与这些主机关联的不同显示器。

    作为 user2 设置您的显示(假设默认情况下):

    DISPLAY=:0; export DISPLAY
    

    然后运行:

    xauth add $DISPLAY . hexkey
    

    注意 $DISPLAY 之后和十六进制键之前的点。

    当不再需要访问权限时,您可以作为 user2 运行:

    xauth remove $DISPLAY
    
    • 41
  2. kfl62
    2011-01-15T09:54:35+08:002011-01-15T09:54:35+08:00

    我输入了.zshrc一条线,export XAUTHORITY=~/.Xauthority现在我可以执行sudo -E xcommand. 经过大量的谷歌搜索,对我来说这是最简单的方法。

    • 15
  3. sleske
    2009-08-07T08:35:59+08:002009-08-07T08:35:59+08:00

    第一:不要使用xhost +,它相当不安全(一揽子允许/拒绝)。

    而是使用 X-Cookie 机制:

    su user2
    cp /home/user1/.Xauthority /home/user2/.Xauthority 
    export DISPLAY=:0
    

    或者,如果您已sux安装,请使用它(请参阅 ehempel 的回答)。

    在这两种情况下,user2 都将使用 .Xauthority 中的秘密 cookie 来授权 X 服务器,其他任何人都无法访问它。

    笔记:

    • 根据您的文件权限,您可能必须以其他方式复制 .Xauthority。
    • 除了复制之外.Xauthority,您还可以使用xauth提取和复制授权密钥(请参阅 Randall 的回答)。如果.Xauthority文件中有多个键,则更具选择性;否则就是口味问题。
    • 12
  4. ehempel
    2009-08-07T18:18:09+08:002009-08-07T18:18:09+08:00

    假设 debian 或 ubuntu(在 Red Hat / SUSE 上应该类似)。

    sudo apt-get install sux
    sux user -c 'command'
    
    • 8
  5. JMS
    2011-02-05T10:48:57+08:002011-02-05T10:48:57+08:00

    这将为所有用户解决问题:

    cat <<EOF > /etc/profile.d/xauth.sh
    #!/sbin/bash
    export XAUTHORITY=~/.Xauthority
    EOF
    
    • 7
  6. ACV
    2015-09-09T01:26:33+08:002015-09-09T01:26:33+08:00

    作为根:

    xhost local:yourusername
    

    你的用户名是你的用户名:)

    然后执行 su ,因为 xclock如果已安装,您的用户应该可以工作

    • 6
  7. alex
    2009-08-07T09:55:32+08:002009-08-07T09:55:32+08:00

    其他一些选项:

    • xauth +(不安全)(不适用于最新版本的xauth)
    • ssh -X user2@localhost(丑陋,但可能比直接身份验证更容易开始工作)
    • 2
  8. Best Answer
    Phil
    2009-08-07T15:44:20+08:002009-08-07T15:44:20+08:00

    我在 KDE 上发现了一些对我有用的东西

    kdesu -u username /path/to/program
    
    • 2
  9. pojem
    2013-07-26T13:26:32+08:002013-07-26T13:26:32+08:00

    这种方式在 suse/opensuse 中制作: http ://www.novell.com/support/kb/doc.php?id=7003743

    只需修改 /etc/pam.d/su,添加选项(粗体):

    会话可选 pam_xauth.so systemuser=1

    然后你可以在没有 - 的情况下使用 su 进行切换:

    苏用户2

    并以图形方式运行应用程序。

    • 0
  10. Matija Nalis
    2017-09-28T09:59:55+08:002017-09-28T09:59:55+08:00

    对于 GNOME(实际上没有任何桌面环境,我只将它与 icewm 一起使用)gksu:

    gksu -u username program
    
    • -2

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve