Ubuntu 17, верно? Вы уверены, что на самом деле используете Xorg, а не Wayland ? (то есть на ps auxfww
самом деле показывает программу под названием X
выполняется?)
Если вы используете Wayland--, который вы бы использовали по умолчанию: доступ к дисплею от пользователя root не разрешен из-за функции безопасности (кашель) (кашель). Они сказали, что вы можете обойти эту команду, прежде чем пытаться запустить gksu:
xhost si:localuser:root
Другой способ - просто запустить систему Ubuntu с обычной системой отображения Xorg; Вы можете установить это при входе в систему, я думаю .
Я никогда не использовал Ubuntu 17, хотя и определенно не пользователь Wayland. Это, вероятно, одна из причин того, что Ubuntu 18 / LTS вернется к использованию классического Xorg по умолчанию .
Важное примечание: если ваше другое имя пользователя не является пользователем root, независимо от того, используете ли вы Wayland или классический Xorg, вам нужно выполнить следующую команду перед запуском вашей программы через gksu:
xhost si:localuser:otherusername
ОБНОВИТЬ:
Приведенное выше решение не работает для Ubuntu 17.04 Xorg из коробки:
$ xhost si:localuser:root localuser:root being added to access control list X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 109 (X_ChangeHosts) Value in failed request: 0xe Serial number of failed request: 7 Current serial number in output stream: 9
Это похоже, что Ubuntu Xorg «сервер не построен с SECURE_RPC поддержкой, поэтому попытка добавить FamilyNetname (0xfe) хост терпит неудачу.»
Так что не из коробки решения для Ubuntu еще (но это не остается, как в ответ до рабочего одного существуют).