Годами я говорил людям не запускать Kate от root пользователя, для редактирования файлов. Обычно в ответ я слышал что то вроде: «Но я должен отредактировать его!». Проблема заключается в том, что приложения с графическим интерфейсом запущеные от root используют X11, что крайне небезопасно, так как предоставляет возможность совершить атаку другому приложению.
Приложения такие как Kate, kwrite и прочие использующие Qt библиотеки представляют большую опасность, так как сама Qt не является подходящим решением для setuid программ из-за большой предрасположенности к атакам.
Если Qt не является подходящим решением для использования в качестве аргумента командной строки от root, то и приложения с графическим интерфейсом использующие QT библиотеки также нельзя использовать от root. Кроме всего прочего, Qt является лишь одной из зависимостей графических приложений. Существует, также xcb, Xlib, OpenGL, xkbcommon и т.д. и т.п.
Как вредоносное приложение может атаковать приложение запущенное от root? Год назад я реализовал простое доказательство атаки против файлового менеджера Dolphin. Атака ожидает запуск Dolphin от root. Как только обнаруживает его, то использует расширение XTest, для того чтобы фальсифицировать вход, активирует встроенное окно Konsole и вводит в него любые команды.
Это всего лишь один пример. На самом деле ахилесовой пятой является процедура обработки строк. Каждое окно X11 имеет множество свойств и любой процесс может писать в него. Мы просто должны признать, что обработка строк является не надежным комплексом и может легко вызвать аварию.
К счастью, нет необходимости для запуска текстового редактора от root, для того чтобы отредактировать файл. Существует аккуратный инструмент под названием sudoedit. Эта команда откроет файл для редактирования файла из эмулятора терминала, тем текстовым редактором который у вас прописан в ~/.bashrc по умолчанию.
У кого не прописан никакой, можете сделать это командой:
echo export EDITOR="kate" >> ~/.bashrc
Сегодня я запустил изменения для Kate и KWrite, которые больше не позволят пользователю запускать их от root. Вместо этого они научат пользователя делать то же самое с sudoedit.
Сейчас я понимаю, что это сломает рабочий процесс некоторым пользователям. Но с незначительной корректировкой рабочего процесса вы получите тот же результат. На самом деле это будет лучше, потому что Кейт которую вы запустите подтянет свои стили. И это также будет работать на Wayland. И самое главное, это будет безопасно.
Также я знаю, что если вы запустите зловредное приложение, то вы уже попались. Тем не менее, я думаю мы должны быть защищены.
Источник на английском https://blog.martin-graesslin.com/: Editing files as root