【问题标题】:root unable to use system clipboard in vim 8.2root 无法在 vim 8.2 中使用系统剪贴板
【发布时间】:2020-08-08 15:59:59
【问题描述】:

我安装了 Vim 8.2 版(Arch Linux 上的 gvim 包)。我同时具有 +clipboard 和 +xterm_clipboard 功能。在我的 ~/.vimrc 中,我有 set clipboard=unnamedplus 并在 /root 中创建了指向此文件的符号链接,因此我只需要编辑一个配置。问题是 yanking 和 paste 仅适用于我的常规用户帐户,但不适用于 root:如果我以 root 身份运行 vim,我什至无法使用 "+y 命令复制到系统剪贴板:PRIMARYCLIPBOARD 寄存器保持不变。

我的终端模拟器是 Konsole 20.04.0。关于可能导致这种奇怪行为的任何想法?值得注意的是,我使用 su -l 来获取 root shell。

【问题讨论】:

  • 不要使用符号链接。使用 sudoedit

标签: vim clipboard root


【解决方案1】:

为了访问 X11 剪贴板,需要将 DISPLAY 变量设置为正确的值,并且可以访问魔法 cookie(即身份验证令牌)。

通常,如果您使用sudosu 以root 身份运行,出于安​​全原因会清除环境变量,因此您可能缺少DISPLAY 环境变量。您可以在更改 shell 时显式设置 DISPLAY 环境变量(例如,export DISPLAY=:0.0)或使用一些脚本将某些环境变量转储到文件或从文件重新加载,或者您可以跳过 @987654328 的 -l 标志@ 或为sudo 使用-E 标志。

请注意,后两个选项的安全性很差,但一般来说,让 root 以非特权用户身份访问相同的 X11 会话并不是一个好主意,所以你想要做的首先对安全性不利.如果您是系统上的唯一用户,则可能没问题,具体取决于您的舒适程度和威胁模型。

【讨论】:

  • 我尝试将 DISPLAY 环境变量设置为 :0.0 和 :0 (普通用户的值)——都没有奏效。但既然你说这样做不是一个好习惯,我想我就让它保持原样吧。谢谢你的建议! )
  • 设置DISPLAY是不够的。您需要允许 root 使用 xhost(对安全性非常不利)或 xauth(更好)访问 X 会话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2016-08-02
  • 1970-01-01
相关资源
最近更新 更多