root невозможно использовать системный буфер обмена в vim 8.2 - PullRequest
0 голосов
/ 25 апреля 2020

У меня установлена ​​версия Vim 8.2 (пакет gvim на Arch Linux). У меня есть функции + буфера обмена и + xterm_clipboard. В моем ~ / .vimr c у меня есть set clipboard=unnamedplus и я создал символическую ссылку c на этот файл в / root, так что мне нужно отредактировать только один конфиг. Проблема в том, что восстановление и вставка работает только для моей учетной записи обычного пользователя, но не для root: если я запускаю vim как root, я даже не могу скопировать в системный буфер обмена с помощью команды "+ y: оба PRIMARY * Регистры 1003 * и CLIPBOARD остаются без изменений.

Мой эмулятор терминала - Konsole 20.04.0. Есть какие-либо соображения относительно того, что может быть причиной этого странного поведения? Возможно, стоит отметить, что я использую su -l, чтобы получить root оболочку.

1 Ответ

1 голос
/ 25 апреля 2020

Чтобы получить доступ к буферу обмена X11, необходимо, чтобы для переменной DISPLAY было установлено правильное значение, и были доступны magi c cook ie (то есть токен аутентификации).

Обычно, если вы используете sudo или su для запуска как root, переменные среды очищаются по соображениям безопасности, поэтому вы, вероятно, пропускаете переменную среды DISPLAY. Вы можете либо явно установить переменную окружения DISPLAY при смене оболочек (например, export DISPLAY=:0.0), либо использовать некоторый сценарий для выгрузки и перезагрузки определенной переменной среды в файл и из файла, либо вы можете пропустить флаг -l для su или используйте флаг -E для sudo.

Обратите внимание, что эти последние два параметра плохие для безопасности, но в целом не стоит разрешать root доступ к тому же сеансу X11, что и непривилегированный пользователь, так что то, что вы хотите сделать, не очень хорошо для безопасности в первую очередь. Если вы единственный пользователь в системе, это может быть нормально, в зависимости от вашего уровня комфорта и модели угроз.

...