Томас Дики абсолютно прав. Однако не делайте этого. Вместо этого используйте sudo
.
Создайте /etc/sudoers.d/change_root_pass
YOURUSERNAME ALL = (ALL) passwd root
(измените ИМЯ ПОЛЬЗОВАТЕЛЯ).
После отключения сервера X11 и повторного входа в систему сокет UNIX X11 в /tmp/.X11-unix/X0
был удален и воссоздан, а файл cookie сеанса X11 в ~/.Xauthority
был заменен новым случайным файлом cookie.
Даже если значение переменной окружения DISPLAY
такое же, приложения должны будут закрыться и повторно -открыть сокет и повторно -прочитать файл cookie. Насколько мне известно, не существует универсального механизма, который сигнализировал бы об этом каким-либо приложениям X11. И это будет только первый шаг :, после чего приложения должны будут полностью воссоздать все свои окна и другие объекты графического интерфейса с сервером X11 и восстановить их состояние, чтобы оно соответствовало внутреннему состоянию программы. Боюсь, этой функции не существует.
Лучшее, что вы можете сделать, это использовать kill -HUP
для остановки приложений, давая им возможность автоматически -сохранить всю несохраненную работу, если они были запрограммированы на это, а затем перезапустить их как обычно.
(Это на самом деле точно соответствует первоначальному значению сигнала HUP
:изначально означало, что модемное соединение стационарной линии пользователя было разорвано, и приложение должно сохранять любую несохраненную работу таким образом, чтобы ее можно было восстановить. в новом сеансе, а затем выйти.)