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

3

我有一个主用户:username1,X是在此用户下运行的。我还有另一个用户账户,在其中进行许多工作:username2。
我如何做到可以将来自username2的命令输出复制到username1的剪贴板中。

Here is an example of it failing:

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

Looking online, I found I should change the DISPLAY variable.
Here is what I get after making that change:

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

当我进行搜索时,我发现可能需要处理我的.Xauthority文件;但是我对此不熟悉。我将继续查阅文档。

如有任何建议,将不胜感激。

1个回答

1

能够写入另一个用户的剪贴板将是一个巨大的安全问题。幸运的是,有一个用户我们可以信任(或者至少我们应该这样认为),那就是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查看该值,如果没有,则可以运行命令w或who来查看该值。
接下来,我们设置XAUTHORITY=/home/username1/.Xauthority来处理所有授权/安全方面的问题。现在,username2无法读取此变量,但root肯定可以(或者username1可以chmod a+r ~/.Xauthority以授予每个人读取权限)。
注意:在Ubuntu 12.04 LTS上进行了测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接