复制到不同的用户剪贴板-Xorg linux

时间:2012-05-21 18:27:03

标签: linux clipboard xorg

我有一个主要用户,X运行在:username1。我有另一个用户帐户,我做了很多工作,用户名2 如何制作它以便我可以将命令的输出从userame2复制到username1s剪贴板。

以下是失败的示例:     

username2 $ echo "hello" |xclip
    No protocol specified
    Error: Can't open display: :0

在网上看,我发现我应该更改DISPLAY变量 这是我做出改变后得到的:     

username2 $ echo "hello" |xclip
    Error: Can't open display: myws:0

搜索时,我也发现我的.Xauthority文件可能需要处理;但是我不熟悉它。我将继续审查文档。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

能够写入其他用户剪贴板将是一个巨大的安全问题。幸运的是,我们可以信任一个用户(或者至少我们应该信任),root。假设您的仅限shell的用户(username2)具有root权限(如sudo)。

username2 $ export DISPLAY=:0
username2 $ export XAUTHORITY=/home/username1/.Xauthority
username2 $ echo "hello" | sudo xclip

我们将username2的DISPLAY变量设置为:0,以便告诉X我们正在处理的屏幕。如果您控制了username1,则只需echo $DISPLAY即可查看该值,如果不能,则可以运行命令wwho来查看该值。

接下来,我们设置XAUTHORITY=/home/username1/.Xauthority来处理所有授权/安全废话。现在,username2无法读取此变量,但root肯定可以(或者username1可以chmod a+r ~/.Xauthority为每个人提供读取权限。)

注意:在Ubuntu 12.04 LTS上测试