использование Sudo wth Gedit не выполняется с сервера XForwarded

Сервер Centos и хост-машина ubuntu имеют установленный gedit. Корневой вход на сервер заблокирован, и только пользователь может войти через SSH через ключи rsa.

Когда я вхожу на сервер с параметром -X, поставляемым в качестве параметра, я могу использовать gedit как:
gedit filename.txt &
и файл открывается в gedit для меня, чтобы редактировать и сохранять. Но если я делаю Sudo для редактирования файлов, я получаю следующую ошибку:

 sudo gedit filename.txt & [1] 11039 [user@server ~]$ X11 connection rejected because of wrong authentication. ** (gedit:11040): WARNING **: Could not open X display X11 connection rejected because of wrong authentication. X11 connection rejected because of wrong authentication. X11 connection rejected because of wrong authentication. (gedit:11040): Gtk-WARNING **: cannot open display: localhost:10.0 [1]+ Exit 1 sudo gedit filename.txt 

Как я могу использовать Gedit в такой ситуации.

  • Пересылка X11 через SSH, если конфигурация сервера не позволяет
  • Понимание пересылки ssh X11
  • Как переадресовать окно (отображение) на другой компьютер в сети
  • $ HOME readonly: / usr / bin / xauth: тайм-аут в файле блокировки /home/fooftp/.Xauthority
  • ssh и sudo, но нет $ DISPLAY
  • Можно ли показывать в открытом / переадресованном сеансе в KDE?
  • XForwarding не загружает правильные $ PATH
  • Как ограничить скорость соединения для IP-адресов «X-Forwarded-for»?
  • 2 Solutions collect form web for “использование Sudo wth Gedit не выполняется с сервера XForwarded”

    sudoedit этого вы можете использовать команду sudoedit .

     EDITOR=gedit sudoedit filename.txt 

    то, что это делает, берет копию файла, затем запускает редактор как вы, а затем, если он обнаруживает, что файл изменил, скопируйте результаты назад.

    В большинстве случаев тот же эффект, что и sudo gedit filename.txt но он запускает редактор непривилегированным, и поэтому ваша X-пересылка должна работать.

    Просто для объяснения, когда вы запускаете sudo он сбрасывает множество переменных среды, включая $HOME который сбрасывается в HOME HOME (возможно, /root ). Когда вы запускаете свою программу X11, ей нужен волшебный cookie XAUTHORITY, позволяющий ей подключаться к DISPLAY. Соответствующий файл cookie будет помещен ssh -X в ~/.Xauthority на удаленный компьютер при подключении.

    Но после sudo ваша программа X11 будет выглядеть в /root/.Xauthority и, следовательно, не получит cookie или старый, устаревший, cookie.

    Следовательно, вы видите неправильные сообщения аутентификации . Существует несколько решений по сохранению или восстановлению $HOME после sudo, но для вашего конкретного случая sudoedit использовать sudoedit как и в другом ответе.

    Interesting Posts

    Как проверить температуру процессора по ядру?

    Как сгенерировать список файлов конфигурации, к которым обращается инструмент (например, bash или vi)?

    монитор сетевого трафика в Debian?

    Паника в ядре – не синхронизация: нет init. При загрузке из U-Boot

    FDISK. Что означает «свободный» раздел?

    IP_TRANSPARENT отсутствует в заголовках glibc

    Как сравнить размеры файлов в двух каталогах?

    Как правильно связать каталоги внутри chroot jails с помощью fstab?

    Как определить, где расширился архив

    почему btmp не показывает имя пользователя для входа в систему?

    Как использовать группы для ограничения всех процессов, кроме белого списка, на один процессор?

    Как заставить VIM отображать 256 цветов правильно

    Как удалить оставшиеся файлы удаленного пользователя?

    Переключатель рабочего пространства Mate и настройка фона меню

    Показать ветви git, которые отклоняются от пульта?

    Linux и Unix - лучшая ОС в мире.