]> Руководство пользователя &tdesu; &Geert.Jansen; &Geert.Jansen.mail; Екатерина Пыжова
haleth@yandex.ru
Перевод на русский язык
Виктор Ерёмин
ErV2005@rambler.ru
Перевод на русский язык
2000 Геерт Янсен (Geert Jansen) &FDLNotice; 2005-06-07 1.00.00 &tdesu; представляет собой графическую оболочку к команде &UNIX;su. KDE su пароль root
Введение Добро пожаловать в &tdesu;! Эта программа представляет собой графическую оболочку к команде &UNIX; su для среды &kde;. Она позволяет вам запускать программы от имени другого пользователя, если вы укажете ей пароль этого пользователя. &tdesu; является непривилегированной программой и пользуется системной программой su. &tdesu; предлагает ещё одну дополнительную возможность — запоминание паролей. Чтобы использовать её, вам нужно ввести пароль всего один раз для каждой команды. Подробности и анализ безопасности смотрите в разделе . Эта программа рассчитана на запуск из командной строки или из файлов .desktop. Хотя она спрашивает пароль пользователя root, используя графический интерфейс, мне кажется, что она скорее основана на слиянии командной строки и графического интерфейса, а не просто на графическом интерфейсе. Использование &tdesu; Использовать &tdesu; просто. Синтаксис вызова следующий: tdesu файл имя_значка приоритет пользователь команда аргумент1 аргумент2 tdesu специфические параметры &kde; специфические параметры Qt Параметры командной строки описаны ниже. Указать программу для запуска с правами root. Это должен быть один аргумент. Поэтому, если вы хотите запустить новый файловый менеджер, вам следует ввести следующее: tdesu . Выводить отладочную информацию. Этот параметр позволяет эффективно использовать &tdesu; в файлах .desktop. При этом &tdesu; проверяет файл, указанный в параметре файл. Если он доступен для записи текущему пользователю, &tdesu; запустит команду с правами этого пользователя. Иначе команда будет запущена с правами пользователя пользователь (root по умолчанию). файл анализируется следующим образом: если этот параметр начинается с /, то он считается абсолютным путём. Иначе — именем глобального файла конфигурации &kde;. Например, чтобы настроить менеджер входа в систему kdm, вам следует набрать tdesu . имя_значка Указывает значок для диалога пароля. Вы можете указать только имя файла, без расширения. Например, чтобы запустить kfmclient и использовать значок &konqueror; в диалоге пароля, введите команду: tdesu kfmclient Не сохранять пароль. Делает недоступным флажок Сохранить пароль в окне ввода пароля. приоритет Устанавливает приоритет выполнения программы. Для указания приоритета используется целое число от 0 до 100, где 100 соответствует максимальному приоритету, и 0 — минимальному. По умолчанию используется 50. Использовать приоритет реального времени. Остановить сервис tdesu. Подробности в разделе . Разрешить терминальный вывод. Это делает невозможным запоминание паролей. В основном эта возможность служит для отладки. Если вы хотите запустить обычное консольное приложение, пользуйтесь стандартным su. пользователь Хотя чаще всего &tdesu; используется для запуска команд с правами root, вы можете указать имя пользователя и соответствующий пароль. Внутренние особенности Аутентификация в X Запускаемая вами программа будет работать с идентификатором пользователя root и, в общем случае, не будет иметь прав для доступа к вашему дисплею X. &tdesu; исправляет это, добавляя cookie аутентификации для вашего дисплея во временный файл .Xauthority. После завершения выполнения команды файл удаляется. Если вы не используете систему X cookie, то &tdesu; обнаружит это и не будет добавлять новый cookie, однако никакой гарантии, что root получит доступ к вашему дисплею, не даётся. Взаимодействие с <command >su</command > &tdesu; использует системную команду su, чтобы получить привилегированный доступ. В этом разделе разъясняется, как &tdesu; это делает. Так как некоторые реализации su (например в &RedHat;) не позволяют задавать пароль из stdin (стандартного потока ввода), &tdesu; создаёт пару pty/tty и запускает su с файловыми дескрипторами, настроенными на этот tty. Чтобы выполнить программу, которую выбрал пользователь, а не запустить оболочку интерактивно, используется параметр для su. Этот аргумент понимается всеми известными оболочками и должен быть переносимым. Команда su передаёт аргумент оболочке пользователя, которая и запускает программу на исполнение. Это выглядит так: su . Вместо прямого запуска команды пользователя через su, &tdesu; запускает небольшую программу, называемую tdesu_stub. Она (запущенная с правами требуемого пользователя) запрашивает определённую информацию от &tdesu; через канал pty/tty (потоки ввода и вывода для этой программы), а затем уже выполняет программу пользователя. Передаваемая информация: номер X-дисплея, X cookie для аутентификации (если доступен), переменная PATH и команда для запуска. Такая вспомогательная программа нужна, потому что X cookie содержит секретную информацию и поэтому не может быть передан в командной строке. Проверка пароля &tdesu; проверяет введённый вами пароль и выдаёт сообщение об ошибке, если он не верен. Проверка организована с помощью выполнения программы-теста /bin/true. Если это возможно, то пароль считается правильным. Хранение паролей Для вашего удобства в &tdesu; реализован механизм хранения паролей. Если вас интересуют вопросы безопасности, прочитайте этот раздел. Запоминание паролей в &tdesu; создаёт небольшую дыру в системе безопасности вашей системы. Очевидно, что &tdesu; не позволяет никому, кроме пользователей с вашим идентификатором пользоваться этими паролями. Однако если это реализовать без предосторожностей, системный уровень безопасности root понизится до уровня обычного пользователя (вас). И человек, который получит доступ к вашей учётной записи, получит доступ уровня root. &tdesu; пытается не допустить этого. Схема безопасности, используемая им, на мой взгляд, достаточно безопасна. &tdesu; использует сервис под названием tdesud. Этот сервис ожидает команды с &UNIX;-сокета, расположенного в /tmp. Режим его доступа равен 0600, то есть только пользователь с вашим идентификатором может соединиться с ним. Если хранение паролей включено, &tdesu; выполняет команды через этот сервис. Он пишет команды и пароль пользователя root в сокет, и сервис выполняет команду su, как описано выше. После этого команда и пароль не теряются, а хранятся в течение указанного времени (устанавливается в модуле настройки). Если другой запрос на запуск такой же команды приходит в течение этого периода времени, клиент может не предоставлять пароль. Чтобы не дать человеку, получившему доступ к вашей учётной записи, украсть у сервиса пароль (например, запуском отладчика), sgid сервиса (группа при запуске) установлен в nogroup. Это не даёт обычным пользователям, в том числе и вам, получать пароли от процесса tdesud. Также этот сервис устанавливает переменную окружения DISPLAY в значение при запуске. Все, что сможет сделать взломщик — это запустить на вашем дисплее приложение. Слабое место в этой схеме в том, что запускаемые программы могут быть написаны без соблюдения правил защиты (например, программы с setuid root). Это означает, что они могут вызвать переполнение буферов или другие проблемы, а взломщик может использовать это. Использование хранения паролей — это компромисс между безопасностью и удобством. Подумайте и решите, что вам больше важно, и решите, будете ли вы им пользоваться. Автор &tdesu; © &Geert.Jansen;, 2000 &tdesu; написал Геерт Янсен (Geert Jansen). Эта программа основана на &tdesu;, версии 0.3, написанной Пьетро Иглио (Pietro Iglio). Мы договорились, что я буду проводить дальнейшую поддержку этой программы. С автором можно связаться по адресу &Geert.Jansen.mail;. Пожалуйста, сообщайте мне о всех встреченных ошибках, чтобы я мог их исправить. Также жду любых предложений и комментариев. &underFDL; &underArtisticLicense;