Внутренние особенности

Авторизация X
Запускаемая программа будет работать с идентификатором пользователя root и, в общем случае, не будет иметь прав для доступа к X-дисплею. исправляет это, добавляя авторизационный cookie для дисплея во временный файл .Xauthority. После завершения команды файл удаляется.
Если система X cookie не используется, это будет обнаружено и новый cookie не будет добавлен, но в этом случае будет необходимо убедиться, что для пользователя root разрешён доступ к дисплею.

Взаимодействие с su
использует системную команду su, чтобы получить привилегированный доступ. В этом разделе подробно объясняется то, как это делает.
Так как некоторые реализации команды su (например, в ) не позволяют вводить пароль, используя stdin, создаёт пару терминалов pty/tty и запускает su с его стандартными файловыми дескрипторами, настроенными на такой tty.
Чтобы выполнить программу, которую выбрал пользователь, а не запустить оболочку интерактивно, для команды su используется аргумент -c. Этот аргумент понимается всеми оболочками, соответственно, он должен быть переносимым. Команда su передаёт аргумент -c оболочке пользователя, которая и запускает программу на исполнение. Пример: su root -c программа.
Вместо прямого запуска команды пользователя через su, запускает небольшую программу, называемую kdesu_stub. Она (запущенная с правами требуемого пользователя) запрашивает определённую информацию от через канал pty/tty (stdin и stdout для этой программы), а затем уже выполняет программу пользователя. Передаваемая информация: номер X-дисплея, авторизационный X cookie (если доступен), переменная PATH и команда для запуска. Такая вспомогательная программа нужна, потому что X cookie содержит секретную информацию и поэтому не может быть передан в командной строке.

Проверка пароля
проверяет введённый пароль и выдаёт сообщение об ошибке, если он не верен. Проверка организована с помощью выполнения программы-теста /bin/true. Если проверка пройдена успешно, пароль считается правильным.

Хранение паролей
Для удобства пользователя в реализован механизм хранения паролей. В этом разделе освещены вопросы безопасности.
Запоминание паролей в создаёт небольшую брешь в системе безопасности. Очевидно, что позволяет пользоваться этими паролями только пользователю с вашим идентификатором. Но если это реализовать без предосторожностей, системный уровень безопасности root понизится до уровня обычного пользователя (вас). И человек, который получит доступ к вашей учётной записи, получит доступ уровня root. пытается не допустить этого. Схема безопасности, используемая программой, обеспечивает достаточный уровень безопасности. Описание этой схемы приведено далее.
использует управляющую программу, которая называется kdesud. Эта управляющая программа ожидает команды с -сокета, расположенного в /tmp. Режим его доступа равен 0600, то есть только пользователь с вашим идентификатором может соединиться с ним. Если хранение паролей включено, выполняет команды через эту управляющую программу. Программа пишет команды и пароль пользователя root в сокет, и управляющая программа выполняет команду su, как описано выше. После этого команда и пароль не удаляются, а хранятся в течение указанного времени (устанавливается в модуле настройки). Если другой запрос на запуск такой же команды приходит в течение этого периода времени, клиент может не предоставлять пароль. Чтобы не дать человеку, получившему доступ к вашей учётной записи, украсть у управляющей программы пароль (например, запуском отладчика), дляsgid сервиса (группа при запуске) установлено значение nogroup. Это не даёт обычным пользователям, в том числе и вам, получать пароли от процесса kdesud. Также эта управляющая программа устанавливает переменную окружения DISPLAY в значение при запуске. Всё, что сможет сделать взломщик, — это запустить на вашем дисплее приложение.
Слабое место в этой схеме в том, что запускаемые программы могут быть написаны без соблюдения правил защиты (например, программы с setuid root). Это означает, что они могут вызвать переполнение буферов или другие проблемы, а взломщик может использовать это.
Использование хранения паролей — это компромисс между безопасностью и удобством. Подумайте и определите, что имеет приоритетное значение, и, соответственно, следует ли пользоваться этой возможностью программы.