Когда я открываю gedit, nautilus и другие файлы в терминале с помощью команды sudo, я получаю сообщение об ошибке ->
Unable to init server: Could not connect: Connection refused
(gedit:22993): Gtk-WARNING **: cannot open display: :0
Команда startx
и изменение темы gnome (например, Wayland, Xorg) тоже не работает с этой ошибкой
Решением для вас было бы просто использовать gnomesu
вместо sudo
. Как написано здесь,
это обычная проблема безопасности. У вас есть многопользовательская система, в которой многие пользователи могут войти в систему, локально или удаленно, в сеансе графического интерфейса. Что, если другие вошедшие в систему люди смогут открывать окна на вашем рабочем столе без вашего разрешения? По крайней мере, неудобно, но также можно было бы создать окно, в котором можно было бы прочитать все, что вы печатаете на клавиатуре, включая ваши банковские счета. Таким образом, необходимо учитывать
xhost
.
Есть несколько способов добиться этого, однако это самый простой способ, поэтому я предлагаю вам сделать это. Если вы все равно хотите использовать обычный sudo (не знаю по какой причине), вы можете внести изменения, указанные в этомвопросе.
Попробуйте запустить
xhost +localhost
в своем терминале, а затем запустите снова судо. Это позволяет всем пользователям вашей системы (т.е. root) открывать окна на вашем экране. Обязательно используйте+localhost
, а не просто+
, поскольку более безопасно разрешать подключения только с локального хоста, чем с в любом месте.Чтобы сделать это постоянным, отредактируйте файл ~/.xinitrc следующим образом:
Запустите
gedit ~/.xinitrc
Отредактируйте файл, чтобы он выглядел следующим образом (в начале он должен быть пустым):
#!/bin/bash
xhost +localhost &
Теперь сохраните файл, выйдите из системы и снова войдите в систему. Теперь все должно работать нормально с sudo.