2 <!DOCTYPE book PUBLIC
"-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
4 <!ENTITY kappname
"&kdesu;">
5 <!ENTITY package
"kdebase">
6 <!ENTITY % addindex
"IGNORE">
7 <!ENTITY % Russian
"INCLUDE"
8 > <!-- change language only here -->
11 <book lang=
"&language;">
15 >Справочное руководство по
&kdesu;</title>
19 >&Geert.Jansen; &Geert.Jansen.mail;
</author>
20 <othercredit role=
"translator"
28 >haleth@yandex.ru
</email
32 >Перевод на русский
</contrib
41 >Геерт Янсен (Geert Jansen)
</holder>
45 >&FDLNotice;</legalnotice>
50 >1.00.00</releaseinfo>
55 >&kdesu; представляет собой графическую оболочку к
&UNIX;-команде
<command
73 <chapter id=
"introduction">
78 >Добро пожаловать в
&kdesu;! Эта программа представляет собой графическую оболочку к
&UNIX;-команде
<command
80 > для среды
&kde;. Она позволяет вам запускать программы от имени другого пользователя, если вы передадите ей пароль этого пользователя.
&kdesu; является непривилегированной программой и пользуется системным
<command
85 >&kdesu; предлагает еще одну дополнительную возможность
— запоминание паролей. Чтобы использовать ее, вам нужно ввести пароль всего однажды для каждой команды. Подробности и анализ безопасности смотрите по ссылке
<xref linkend=
"sec-password-keeping"/>.
</para>
88 >Эта программа расчитана на запуск из командной строки или из файлов
<filename
90 >. Хотя она спрашивает пароль пользователя
<systemitem class=
"username"
92 >, используя графический интерфейс, мне кажется, что она скорее основана на слиянии командной строки и графического интерфейса, а не просто на графическом интерфейсе.
</para>
96 <chapter id=
"using-kdesu">
98 >Использование
&kdesu;</title>
101 >Использовать
&kdesu; просто. Синтаксис следующий:
</para>
124 >COMMAND
</replaceable
156 >Параметры командной строки описаны ниже.
</para>
163 >PROGRAM
</replaceable
168 >Указать программу для запуска с правами root. Это должен быть один аргумент. Поэтому, если вы хотите запустить новый файловый менеджер, вам следует ввести следующее:
<userinput
172 >kfm -sw
</replaceable
188 >Этот параметр позволяет эффективно использовать
<filename
190 >-файлы. При этом
&kdesu; проверяет файл, указанный в
<parameter
192 >. Если он доступен для записи текущему пользователю, то
&kdesu; запустит команду с правами этого пользователя. Иначе команда будет запущена с правами пользователя
<parameter
194 > (root по умолчанию).
</para>
198 > анализируется так: если этот параметр начинается с
<literal
200 >, то он считается абсолютным путем. Иначе
— именем глобального файла конфигурации
&kde;. Например, чтобы настроить менеджер входа в систему
<application
202 >, вам следует набрать
<command
204 >-c kdmconfig -f kdmrc
</option
216 >Разрешить терминальный вывод. Это делает невозможным запоминание паролей. В основном служит для отладки. Если вы хотите запустить обычное консольное приложение, пользуйтесь стандартным
<command
228 >Не сохранять пароль. Делает недоступным флажок
<guilabel
229 >Сохранить пароль
</guilabel
230 > в окне ввода пароля.
</para
240 >Не выводить никакой информации.
</para
242 <!-- Lauri: This could do with a little expansion. quiet as in no screen -->
243 <!-- output, quiet as in no gui prompt for the password, or quiet as in no -->
254 >Выводить информацию для отладки.
</para
264 >Вывести номер версии и завершить работу.
</para
274 >Вывести небольшое описание.
</para
284 >Остановить сервис kdesu. Подробности:
<xref linkend=
"sec-password-keeping"/>.
</para
291 <chapter id=
"configuration">
296 >&kde; устанавливается с модулем настройки
<application
297 >kcmkdesu
</application
298 >. Его можно найти в
<guimenu
300 > в подменю
<menuchoice
302 >Настройка
</guisubmenu
306 >Безопасность
</guimenuitem
316 >Отображать вводимый символ
</guilabel
320 >Определяет режим отображения символов пароля. Можно выводить звездочку вместо каждого символа, три звездочки или вообще ничего не выводить. По умолчанию
— одна звездочка вместо символа.
</para
326 >Запоминание паролей
</guilabel
330 >Если флажок
<guilabel
331 >Помнить пароль
</guilabel
332 > установлен,
&kdesu; будет запоминать введенные пароли. Время (в минутах), в течение которого вас не спросят повторно пароль, вводится в поле ниже. По умолчанию эта возможность не используется.
</para
339 <chapter id=
"Internals">
341 >Внутренние особенности
</title>
343 <sect1 id=
"x-authentication">
345 >Авторизация X
</title>
348 >Запускаемая вами программа будет работать с идентификатором пользователя root и, в общем случае, не будет иметь прав для доступа к вашему X-дисплею.
&kdesu; исправляет это, добавляя авторизационный cookie для вашего дисплея во временный файл
<filename
349 >.Xauthority
</filename
350 >. После завершения команды, файл удаляется.
</para>
353 >Если вы не используете систему X cookie, то
&kdesu; обнаружит это и не будет добавлять новый cookie, однако никакой гарантии, что root получит доступ к вашему дисплею, не дается.
</para>
357 <sect1 id=
"interface-to-su">
359 >Взаимодействие с
<command
364 >&kdesu; использует системную команду
<command
366 >, чтобы получить привилегированный доступ. В этом разделе объясняются детали того, как
&kdesu; это делает.
</para>
369 >Так как некоторые реализации
<command
371 > (например в
&RedHat;) не позволяют задавать пароль из
<literal
373 >,
&kdesu; создает пару pty/tty и запускает
<command
375 > с его стандартными файловыми дескрипторами, настроенными на этот tty.
</para>
378 >Чтобы выполнить программу, которую выбрал пользователь, а не запустить оболочку интерактивно, используется параметр
<option
382 >. Этот аргумент понимается всеми известными мне оболочками и должен быть переносимым. Команда
<command
384 > передает аргумент
<option
386 > оболочке пользователя, которая и запускает программу на исполнение. Это выглядит так:
<command
388 >root -c
<replaceable
389 >the_program
</replaceable
395 >Вместо прямого запуска команды пользователя через
<command
397 >,
&kdesu; запускает небольшую программу, называемую
<application
398 >kdesu_stub
</application
399 >. Она (запущенная с правами требуемого пользователя) запрашивает определенную информацию от
&kdesu; через канал pty/tty (stdin и stdout для этой программы), а затем уже выполняет программу пользователя. Передаваемая информация: номер X-дисплея, авторизационный X cookie (если доступен), переменная
<envar
401 > и команда для запуска. Такая вспомогательная программа нужна, потому что X cookie содержит секретную информацию и поэтому не может быть передан в командной строке.
</para>
405 <sect1 id=
"password-checking">
407 >Проверка пароля
</title>
410 >&kdesu; проверяет введенный вами пароль и выдает сообщение об ошибке, если он не верен. Проверка организована с помощью выполнения программы-теста
<filename
412 >. Если это возможно, то пароль считается правильным.
</para>
416 <sect1 id=
"sec-password-keeping">
418 >Хранение паролей
</title>
421 >Для вашего удобства в
&kdesu; реализован механизм хранения паролей. Если вас интересуют вопросы безопасности, прочитайте этот раздел.
</para>
424 >Запоминание паролей в
&kdesu; создает небольшую дыру в системе безопасности вашей системы. Очевидно, что
&kdesu; не позволяет никому, кроме пользователей с вашим идентификатором пользоваться этими паролями. Однако если это реализовать без предосторожностей, системный уровень безопасности
<systemitem class=
"username"
426 > понизится до уровня обычного пользователя (вас). И человек, который получит доступ к вашей учетной записи, получит доступ уровня
<systemitem class=
"username"
428 >.
&kdesu; пытается не допустить этого. Схема безопасности, используемая им, на мой взгляд, достаточно безопасна.
</para>
431 >&kdesu; использует сервис под названием
<application
433 >. Этот сервис ожидаает команды с
&UNIX;-сокета, расположенного в
<filename
435 >. Режим его доступа равен
0600, то есть только пользователь с вашим идентификатором может соединиться с ним. Если хранение паролей включено,
&kdesu; выполняет команды через этот сервис. Он пишет команды и пароль пользователя
<systemitem class=
"username"
437 > в сокет, и сервис выполняет команду
<command
439 >, как описано выше. После этого команда и пароль не теряются, а хранятся в течение указанного времени (устанавливается в модуле настройки). Если другой запрос на запуск такой же команды приходит в течение этого периода времени, клиент может не предоставлять пароль. Чтобы не дать человеку, получившему доступ к вашей учетной записи, украсть у сервиса пароль (например, запуском отладчика), sgid сервиса (группа при запуске) установлен в nogroup. Это не дает обычным пользователям, в том числе и вам, получать пароли от процесса
<application
441 >. Также этот сервис устанавливает переменную окружения
<envar
443 > в значение при запуске. Все, что сможет сделать взломщик
— это запустить на вашем дисплее приложение.
</para>
446 >Слабое место в этой схеме в том, что запускаемые программы могут быть написаны без соблюдения правил защиты (например, программы с setuid
<systemitem class=
"username"
448 >). Это означает, что они могут вызвать переполнение буферов или другие проблемы, а взломщик может использовать это.
</para>
451 >Использование хранения паролей
— это компромисс между безопасностью и удобством. Подумайте и решите, что вам больше важно, и решите, будете ли вы им пользоваться.
</para>
456 <chapter id=
"Author">
464 >(C)
2000 Геерт Янсен (Geert Jansen)
</para>
467 >&kdesu; написал Геерт Янсен (Geert Jansen). Эта программа основана на
&kdesu;, версии
0.3, написанной Пьетро Иглио (Pietro Iglio). Мы договорились, что я буду проводить дальнейшую поддержку этой программы.
</para>
470 >С автором можно связаться по адресу &Geert.Jansen.mail;. Пожалуйста, сообщайте мне о всех встреченных ошибках, чтобы я мог их исправить. Также жду любых предложений и комментариев.
</para>
471 &underFDL; &underArtisticLicense; </chapter>