<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - NotUnixWay</title>
<link>http://freesource.info/wiki/NotUnixWay</link>
<description>History/revisions of FreeSource/NotUnixWay</description>
<language>en-us</language>
<item>
<title>2008-02-15 04:59:58</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-15+04%3A59%3A58</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".notunixway" href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-15+04%3A59%3A58">2008-02-15 04:59:58&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay">2008-02-26 14:59:38&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">У&amp;nbsp;современных систем средства класса IPC&amp;nbsp;(в классическом случае это&amp;nbsp;каналы и&amp;nbsp;параметры, переданные приложению как&amp;nbsp;подстановка строки выданной другим приложением) имеют тенденцию объединяться с&amp;nbsp;RPC.  Конечно, сетевое взаимодействие можно также представить в&amp;nbsp;виде взаимодействия приложений передающих команды через параметры командной строки и&amp;nbsp;каналы. Но&amp;nbsp;так нигде не&amp;nbsp;сделано. Во-первых это&amp;nbsp;связано с&amp;nbsp;проблемами безопасности и&amp;nbsp;сетевой аутентификацией, во-вторых &amp;ndash; с&amp;nbsp;необходимостью адекватной авторизации, где&amp;nbsp;немаловажную роль играют идентификаторы (aka uid&amp;nbsp;и&amp;nbsp;gid). &lt;br />
Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа может быть запущена вне&amp;nbsp;рамок локального процесса. А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии команд и&amp;nbsp;их удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix роль среды для&amp;nbsp;сессии выполняет называемая оболочка или&amp;nbsp;командный интерпретатор. Эта&amp;nbsp;сессия запускается тв&amp;nbsp;или иначе в&amp;nbsp;виде процесса, кторому присваивается соответствующий идентификатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутентификация. Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно сконфигурированных модулей &lt;a name="texnologii.pam" href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняется на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста. Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&amp;nbsp;супер-пользователя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы. Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли... &lt;br />
Например возьмём ещё одну простую задачу &amp;ndash; обратиться от&amp;nbsp;имени пользователя к&amp;nbsp;локальному сервису. Что&amp;nbsp;для этого существует?&lt;br />
Последние два&amp;nbsp;находятся на&amp;nbsp;файловой системе и&amp;nbsp;для работы с&amp;nbsp;ними требуется каким-либо образом передать клиенту имя&amp;nbsp;файла для&amp;nbsp;обращения к&amp;nbsp;сервису. Для&amp;nbsp;этого обычно используются, например в&amp;nbsp;D-BUS, переменные окружения или&amp;nbsp;файлы настройки в&amp;nbsp;домашнем каталоге. В&amp;nbsp;первом случае, чтобы клиент мог&amp;nbsp;воспользоваться таким сервисом, этот сервис должен быть запущен до&amp;nbsp;запуска его&amp;nbsp;клиентов, чтобы родительскому процессу всего дерева процессов клиента могла быть передана соответствующая переменная окружения. Во&amp;nbsp;втором же&amp;nbsp;случае, должен существовать либо путь, вычисляемый по&amp;nbsp;умолчанию, либо отдельная настройка под&amp;nbsp;каждого клиента. В&amp;nbsp;любом случае, при&amp;nbsp;использовании файлов, авторизовывать клиента целесообразно только на&amp;nbsp;уровне доступа к&amp;nbsp;этому файлу (с помощью группы или&amp;nbsp;ACL), что&amp;nbsp;означает необходимость создания разных файлов для&amp;nbsp;разных клиентов, чтобы отличать их&amp;nbsp;друг от&amp;nbsp;друга. В&amp;nbsp;самом удачном варианте это&amp;nbsp;требует создания сложной инфраструктуры для&amp;nbsp;поддержки этого механизма. Если таких служб станет много, то&amp;nbsp;без шаблонов привилегий тут&amp;nbsp;не&amp;nbsp;обойтись... Одним из&amp;nbsp;вариантов стандартизации на&amp;nbsp;этом уровне является связка HAL/D-BUS/PolicyKit&lt;br />
Основную мысль рассуждения, хотелось бы&amp;nbsp;завершить следующим резюме. Пока не&amp;nbsp;будет придумана и&amp;nbsp;реализована общая схема интеграции IPC&amp;nbsp;и&amp;nbsp;RPC, пока не&amp;nbsp;будут организованы стандартные средства и&amp;nbsp;API для&amp;nbsp;единой и&amp;nbsp;прозрачной сетевой и&amp;nbsp;локальной аутентификации, пути к&amp;nbsp;современным корпоративным средам у&amp;nbsp;Unix Way&amp;nbsp;нет. К&amp;nbsp;сожалению, к&amp;nbsp;моменту когда они&amp;nbsp;будут реализованы, всё уже&amp;nbsp;тоже может оказаться слишком далеко ушедшим. Это&amp;nbsp;уже сейчас почти так...&lt;br />
На&amp;nbsp;самом деле всё уже&amp;nbsp;есть. Есть Kerberos и&amp;nbsp;именно он&amp;nbsp;используется в&amp;nbsp;w2k3, и&amp;nbsp;именно про&amp;nbsp;него апеллируют к&amp;nbsp;MIT. Хотя в&amp;nbsp;w2k3 он&amp;nbsp;не совсем такой, какой он&amp;nbsp;у MIT. Он&amp;nbsp;использует некоторые поля, которые в&amp;nbsp;стандарте можно использовать для&amp;nbsp;своих целей разработчикам, для&amp;nbsp;передачи авторизационной информации. Что&amp;nbsp;же&amp;nbsp;даёт Kerberos? Он&amp;nbsp;даёт необходимую прозрачную сетевую аутентификацию. Почему же&amp;nbsp;он не&amp;nbsp;используется повсеместно? Потому, что&amp;nbsp;усложняет программы (есть даже такой термин керберизация). Керберизация означает однозначное завязывание на&amp;nbsp;одну библиотеку и&amp;nbsp;один вариант аутентификации, а&amp;nbsp;использование стандартного PAM&amp;nbsp;требует ввода пароля &amp;#8220;by design&amp;#8221;. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, что&amp;nbsp;одноранговых сетях можно заменить на&amp;nbsp;Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... Кроме того Kerberos требует выделенного сервера &amp;ndash; KDC, то&amp;nbsp;есть керберизация в&amp;nbsp;одноранговой сети не&amp;nbsp;предусмотрена. Интерфейсы же&amp;nbsp;приложений, тем&amp;nbsp;более если они&amp;nbsp;сетевые, могут быть любыми удобными, поскольку никакой unix-way не&amp;nbsp;решает вопроса глобальной сетевой аутентификации. Открываем сокет.... И&amp;nbsp;там уже&amp;nbsp;что ни&amp;nbsp;попадя... &lt;a name="texnologii.openssl" href="http://freesource.info/wiki/Texnologii/OpenSSL&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;SSL">SSL&lt;/a>, HTTPS, &lt;a name="texnologii.openid" href="http://freesource.info/wiki/Texnologii/OpenID&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;ID">OpenID&lt;/a>, Kerberos, ...&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">У&amp;nbsp;современных систем средства класса IPC&amp;nbsp;(в классическом случае это&amp;nbsp;каналы и&amp;nbsp;параметры, переданные приложению как&amp;nbsp;подстановка строки выданной другим приложением) имеют тенденцию объединяться с&amp;nbsp;RPC.  Конечно, сетевое взаимодействие можно также представить в&amp;nbsp;виде взаимодействия приложений передающих команды через параметры коммандной строки и&amp;nbsp;каналы. Но&amp;nbsp;так нигде не&amp;nbsp;сделано. Во-первых это&amp;nbsp;связано с&amp;nbsp;проблемами безопасности и&amp;nbsp;сетевой аутентификацией, во-вторых &amp;ndash; с&amp;nbsp;необходимостью адекватной авторизации, где&amp;nbsp;немаловажную роль играют идентификторы (aka uid&amp;nbsp;и&amp;nbsp;gid). &lt;br />
Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа может быть запущена вне&amp;nbsp;рамок локального процесса. А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии комманд и&amp;nbsp;их удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix роль среды для&amp;nbsp;сессии выполняет называемая оболочка или&amp;nbsp;коммандный интерпретатор. Эта&amp;nbsp;сессия запускается тв&amp;nbsp;или иначе в&amp;nbsp;виде процесса, кторому присваивается соотвествующий идентификатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутетнификация. Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно скофигурированных модулей &lt;a  href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняетя на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста. Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&amp;nbsp;супер-пользоателя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы. Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли... &lt;br />
Например воьзмём ещё одну простую задачу &amp;ndash; обратиться от&amp;nbsp;имени пользователя к&amp;nbsp;локальному сервису. Что&amp;nbsp;для этого существует?&lt;br />
Последние два&amp;nbsp;находятся на&amp;nbsp;файловой системе и&amp;nbsp;для работы с&amp;nbsp;ними требуется каким-либо образом передать клиенту имя&amp;nbsp;файла для&amp;nbsp;обращения к&amp;nbsp;сервису. Для&amp;nbsp;этого обычно используются, например в&amp;nbsp;D-BUS, переменные окружения или&amp;nbsp;файлы настройки в&amp;nbsp;домашнем каталоге. В&amp;nbsp;первом случае, чтобы клиент мог&amp;nbsp;воспользоваться таким сервисом, этот сервис должен быть запущен до&amp;nbsp;запуска его&amp;nbsp;клиентов, чтобы родительскому процессу всего дерева процессов клиента могла быть передана соотвествующая переменная окружения. Во&amp;nbsp;втором же&amp;nbsp;случае, должен существовать либо путь, вычисляемый по&amp;nbsp;умолчанию, либо отдельная настройка под&amp;nbsp;каждого клиента. В&amp;nbsp;любом случае, при&amp;nbsp;использовании файлов, авторизовывать клиента целесообразно только на&amp;nbsp;уровне доступа к&amp;nbsp;этому файлу (с помощью группы или&amp;nbsp;ACL), что&amp;nbsp;означает необходимость создания разных файлов для&amp;nbsp;разных клиентов, чтобы отличать их&amp;nbsp;друг от&amp;nbsp;друга. В&amp;nbsp;самом удачном варианте это&amp;nbsp;требует создания сложной инфраструктуры для&amp;nbsp;поддержки этого механизма. Если таких служб станет много, то&amp;nbsp;без шаблонов привилегий тут&amp;nbsp;не&amp;nbsp;обойтись... Одним из&amp;nbsp;вариантов стандартизации на&amp;nbsp;этом уровне является связка HAL/D-BUS/PolicyKit&lt;br />
Основную мысль рассуждения, хотелось бы&amp;nbsp;завершить следующим резюме. Пока не&amp;nbsp;будет придумана и&amp;nbsp;реализована общая схема интеграции IPC&amp;nbsp;и&amp;nbsp;RPC, пока не&amp;nbsp;будут организованы стандарные средства и&amp;nbsp;API для&amp;nbsp;единой и&amp;nbsp;прозрачной сетевой и&amp;nbsp;локальной аутентификации, пути к&amp;nbsp;современным корпоративным средам у&amp;nbsp;Unix Way&amp;nbsp;нет. К&amp;nbsp;сожалению, к&amp;nbsp;моменту когда они&amp;nbsp;будут реализованы, всё уже&amp;nbsp;тоже может оказаться слишком далеко ушедшим. Это&amp;nbsp;уже сейчас почти так...&lt;br />
На&amp;nbsp;самом деле всё уже&amp;nbsp;есть. Есть Kerberos и&amp;nbsp;именно он&amp;nbsp;используется в&amp;nbsp;w2k3, и&amp;nbsp;именно про&amp;nbsp;него аппелируют к&amp;nbsp;MIT. Хотя в&amp;nbsp;w2k3 он&amp;nbsp;не совсем такой, какой он&amp;nbsp;у MIT. Он&amp;nbsp;использует некоторые поля, которые в&amp;nbsp;стандарте можно использовать для&amp;nbsp;своих целей разработчикам, для&amp;nbsp;передачи авторизационной информации. Что&amp;nbsp;же&amp;nbsp;даёт Kerberos? Он&amp;nbsp;даёт необходимую прозрачную сетевую аутентификацию. Почему же&amp;nbsp;он не&amp;nbsp;используется повсеместно? Потому, что&amp;nbsp;усложняет программы (есть даже такой термин керберизация). Керберизация означает однозначное завязывание на&amp;nbsp;одну библиотеку и&amp;nbsp;один вариант аутентификации, а&amp;nbsp;использование стандартного PAM&amp;nbsp;требует ввода пароля &amp;#8220;by design&amp;#8221;. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, что&amp;nbsp;одноранговых сетях омжно заменить на&amp;nbsp;Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... Кроме того Kerberos требует выделенного сервера &amp;ndash; KDC, то&amp;nbsp;есть кербризация в&amp;nbsp;одноранговой сети не&amp;nbsp;предусмотрена. Интерфейсы же&amp;nbsp;приложений, тем&amp;nbsp;более если они&amp;nbsp;сетевые, могут быть любыми удобными, поскольку никакой unix-way не&amp;nbsp;решает вопроса глобальной сетевой аутентификации. Открываем сокет.... И&amp;nbsp;там уже&amp;nbsp;что ни&amp;nbsp;поподя... &lt;a  href="http://freesource.info/wiki/Texnologii/OpenSSL&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;SSL">SSL&lt;/a>, HTTPS, &lt;a  href="http://freesource.info/wiki/Texnologii/OpenID&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;ID">OpenID&lt;/a>, Kerberos, ...&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-15 04:55:22</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-15+04%3A55%3A22</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-15+04%3A55%3A22">2008-02-15 04:55:22&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-15+04%3A59%3A58">2008-02-15 04:59:58&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа может быть запущена вне&amp;nbsp;рамок локального процесса. А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии комманд и&amp;nbsp;их удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix роль среды для&amp;nbsp;сессии выполняет называемая оболочка или&amp;nbsp;коммандный интерпретатор. Эта&amp;nbsp;сессия запускается тв&amp;nbsp;или иначе в&amp;nbsp;виде процесса, кторому присваивается соотвествующий идентификатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутетнификация. Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно скофигурированных модулей &lt;a  href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняетя на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста. Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&amp;nbsp;супер-пользоателя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы. Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли...&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа может быть запущена вне&amp;nbsp;рамок локального процесса. А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии комманд и&amp;nbsp;их удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix это&amp;nbsp;так называемая или&amp;nbsp;коммандный интерпретатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутетнификация. Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно скофигурированных модулей &lt;a  href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняетя на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста. Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&amp;nbsp;супер-пользоателя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы. Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли...&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-11 03:24:20</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-11+03%3A24%3A20</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-11+03%3A24%3A20">2008-02-11 03:24:20&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-15+04%3A55%3A22">2008-02-15 04:55:22&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа может быть запущена вне&amp;nbsp;рамок локального процесса. А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии комманд и&amp;nbsp;их удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix это&amp;nbsp;так называемая или&amp;nbsp;коммандный интерпретатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутетнификация. Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно скофигурированных модулей &lt;a  href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняетя на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста. Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&amp;nbsp;супер-пользоателя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы. Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли...&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа не&amp;nbsp;может быть запущена вне&amp;nbsp;рамок локального процесса. А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии комманд и&amp;nbsp;удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix это&amp;nbsp;так называемая или&amp;nbsp;коммандный интерпретатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутетнификация. Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно скофигурированных модулей &lt;a  href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняетя на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста. Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&amp;nbsp;супер-пользоателя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы. Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли...&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-10 20:56:45</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-10+20%3A56%3A45</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+20%3A56%3A45">2008-02-10 20:56:45&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-11+03%3A24%3A20">2008-02-11 03:24:20&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Основной целью этой статьи является прояснение технических проблем использования &lt;a name="stat_jaklassicheskijjunixway" href="http://freesource.info/wiki/Stat'jaKlassicheskijjUnixWay&amp;" class="" title="Статья&amp;nbsp;Классический&amp;nbsp;Unix&amp;nbsp;Way">классического Unix Way&lt;/a> на&amp;nbsp;практике. Первый вариант этой статьи был&amp;nbsp;написан как&amp;nbsp;комментарий к&amp;nbsp;статье &lt;a name="ideologijalinux" href="http://freesource.info/wiki/IdeologijaLinux&amp;" class="" title="Идеология&amp;nbsp;Linux">идеология Linux&lt;/a> в&amp;nbsp;отношении к&amp;nbsp;части о&amp;nbsp;проявлении вреда (Free|Open)Source. К&amp;nbsp;сожалению, комментарий канул в&amp;nbsp;лету, но&amp;nbsp;его копия чудом сохранилась.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Основной целью этой статьи является прояснение технических проблем использования (&lt;a  href="http://freesource.info/wiki/Stat'jaKlassicheskijjUnixWay&amp;" class="">Статья&amp;nbsp;Классический&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> классического Unix Way)) на&amp;nbsp;практике. Первый вариант этой статьи был&amp;nbsp;написан как&amp;nbsp;комментарий к&amp;nbsp;статье &lt;a  href="http://freesource.info/wiki/IdeologijaLinux&amp;" class="" title="Идеология&amp;nbsp;Linux">идеология Linux&lt;/a> в&amp;nbsp;отношении к&amp;nbsp;части о&amp;nbsp;проявлении вреда (Free|Open)Source. К&amp;nbsp;сожалению, комментарий канул в&amp;nbsp;лету, но&amp;nbsp;его копия чудом сохранилась.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-10 20:52:22</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-10+20%3A52%3A22</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+20%3A52%3A22">2008-02-10 20:52:22&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+20%3A56%3A45">2008-02-10 20:56:45&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Основной целью этой статьи является прояснение технических проблем использования (&lt;a  href="http://freesource.info/wiki/Stat'jaKlassicheskijjUnixWay&amp;" class="">Статья&amp;nbsp;Классический&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> классического Unix Way)) на&amp;nbsp;практике. Первый вариант этой статьи был&amp;nbsp;написан как&amp;nbsp;комментарий к&amp;nbsp;статье &lt;a  href="http://freesource.info/wiki/IdeologijaLinux&amp;" class="" title="Идеология&amp;nbsp;Linux">идеология Linux&lt;/a> в&amp;nbsp;отношении к&amp;nbsp;части о&amp;nbsp;проявлении вреда (Free|Open)Source. К&amp;nbsp;сожалению, комментарий канул в&amp;nbsp;лету, но&amp;nbsp;его копия чудом сохранилась.&lt;br />
У&amp;nbsp;современных систем средства класса IPC&amp;nbsp;(в классическом случае это&amp;nbsp;каналы и&amp;nbsp;параметры, переданные приложению как&amp;nbsp;подстановка строки выданной другим приложением) имеют тенденцию объединяться с&amp;nbsp;RPC.  Конечно, сетевое взаимодействие можно также представить в&amp;nbsp;виде взаимодействия приложений передающих команды через параметры коммандной строки и&amp;nbsp;каналы. Но&amp;nbsp;так нигде не&amp;nbsp;сделано. Во-первых это&amp;nbsp;связано с&amp;nbsp;проблемами безопасности и&amp;nbsp;сетевой аутентификацией, во-вторых &amp;ndash; с&amp;nbsp;необходимостью адекватной авторизации, где&amp;nbsp;немаловажную роль играют идентификторы (aka uid&amp;nbsp;и&amp;nbsp;gid). &lt;br />
Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа не&amp;nbsp;может быть запущена вне&amp;nbsp;рамок локального процесса. А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии комманд и&amp;nbsp;удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix это&amp;nbsp;так называемая или&amp;nbsp;коммандный интерпретатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутетнификация. Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно скофигурированных модулей &lt;a  href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняетя на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста. Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&amp;nbsp;супер-пользоателя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы. Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли... &lt;br />
Последние два&amp;nbsp;находятся на&amp;nbsp;файловой системе и&amp;nbsp;для работы с&amp;nbsp;ними требуется каким-либо образом передать клиенту имя&amp;nbsp;файла для&amp;nbsp;обращения к&amp;nbsp;сервису. Для&amp;nbsp;этого обычно используются, например в&amp;nbsp;D-BUS, переменные окружения или&amp;nbsp;файлы настройки в&amp;nbsp;домашнем каталоге. В&amp;nbsp;первом случае, чтобы клиент мог&amp;nbsp;воспользоваться таким сервисом, этот сервис должен быть запущен до&amp;nbsp;запуска его&amp;nbsp;клиентов, чтобы родительскому процессу всего дерева процессов клиента могла быть передана соотвествующая переменная окружения. Во&amp;nbsp;втором же&amp;nbsp;случае, должен существовать либо путь, вычисляемый по&amp;nbsp;умолчанию, либо отдельная настройка под&amp;nbsp;каждого клиента. В&amp;nbsp;любом случае, при&amp;nbsp;использовании файлов, авторизовывать клиента целесообразно только на&amp;nbsp;уровне доступа к&amp;nbsp;этому файлу (с помощью группы или&amp;nbsp;ACL), что&amp;nbsp;означает необходимость создания разных файлов для&amp;nbsp;разных клиентов, чтобы отличать их&amp;nbsp;друг от&amp;nbsp;друга. В&amp;nbsp;самом удачном варианте это&amp;nbsp;требует создания сложной инфраструктуры для&amp;nbsp;поддержки этого механизма. Если таких служб станет много, то&amp;nbsp;без шаблонов привилегий тут&amp;nbsp;не&amp;nbsp;обойтись... Одним из&amp;nbsp;вариантов стандартизации на&amp;nbsp;этом уровне является связка HAL/D-BUS/PolicyKit&lt;br />
Тем&amp;nbsp;не&amp;nbsp;менее, в&amp;nbsp;своём большинстве, в&amp;nbsp;силу необходимости удалённого управления, большинство решений, например mpd, работают с&amp;nbsp;помощью сокетов. И&amp;nbsp;тут возникает весьма не&amp;nbsp;простая вещь. Возникает новый класс сетевых пользователей, даже если эти&amp;nbsp;пользователи на&amp;nbsp;самом деле локальные. Любая задача вида:&lt;br />
требует отдельной аутентификации... В&amp;nbsp;самом небезопасном случае, это&amp;nbsp;означает, что&amp;nbsp;по&amp;nbsp;домашнему каталогу пользователя и&amp;nbsp;по /etc начинают расползаться вбитые пароли. А&amp;nbsp;что если пароль измениться? Его&amp;nbsp;придётся изменять у&amp;nbsp;всех клиентов. Кроме того это&amp;nbsp;не&amp;nbsp;удобно для&amp;nbsp;сервера &amp;ndash; у&amp;nbsp;него нет&amp;nbsp;стандартного средства кроме PAM, и&amp;nbsp;он вынужден каждый раз&amp;nbsp;требовать пароль.&lt;br />
Многие задачи, как&amp;nbsp;в&amp;nbsp;показанном в&amp;nbsp;начале примере, решаются поверх протокола SSH, но&amp;nbsp;полноценный RPC&amp;nbsp;на&amp;nbsp;нём сделать не&amp;nbsp;просто, поскольку он&amp;nbsp;не предназначен для&amp;nbsp;решения всего спектра задач необходимых при&amp;nbsp;удалённом управлении. Прежде всего потому, что&amp;nbsp;спроектирован как&amp;nbsp;удалённая консоль и&amp;nbsp;для использования системными службами не&amp;nbsp;предназначен. &lt;br />
Связи между реализациями классического Unix Way&amp;nbsp;и&amp;nbsp;современными задачами, требующими сетевой аутентификации и&amp;nbsp;авторизации нет. Именно это&amp;nbsp;мешает сделать простым запуск команды на&amp;nbsp;удалённом хосте. Отсутствие этой связи можно проследить отсутствием связи между отдельными подсистемами ядра, поскольку именно на&amp;nbsp;уровне ядра происходит распределение полномочий процессов. Сетевая аутентификация и&amp;nbsp;авторизация никак на&amp;nbsp;вписывается в&amp;nbsp;Unix Way, поскольку реализуется на&amp;nbsp;прикладном уровне.  Здесь ещё не&amp;nbsp;хватает сетевой файловой системы  и&amp;nbsp;соответствия между uid'ами и&amp;nbsp;gid'ами на&amp;nbsp;локальном и&amp;nbsp;удалённом хостах. Это&amp;nbsp;тоже  не&amp;nbsp;вписывается в&amp;nbsp;текущие реализации классического Unix Way.&lt;br />
Основную мысль рассуждения, хотелось бы&amp;nbsp;завершить следующим резюме. Пока не&amp;nbsp;будет придумана и&amp;nbsp;реализована общая схема интеграции IPC&amp;nbsp;и&amp;nbsp;RPC, пока не&amp;nbsp;будут организованы стандарные средства и&amp;nbsp;API для&amp;nbsp;единой и&amp;nbsp;прозрачной сетевой и&amp;nbsp;локальной аутентификации, пути к&amp;nbsp;современным корпоративным средам у&amp;nbsp;Unix Way&amp;nbsp;нет. К&amp;nbsp;сожалению, к&amp;nbsp;моменту когда они&amp;nbsp;будут реализованы, всё уже&amp;nbsp;тоже может оказаться слишком далеко ушедшим. Это&amp;nbsp;уже сейчас почти так...&lt;br />
На&amp;nbsp;самом деле всё уже&amp;nbsp;есть. Есть Kerberos и&amp;nbsp;именно он&amp;nbsp;используется в&amp;nbsp;w2k3, и&amp;nbsp;именно про&amp;nbsp;него аппелируют к&amp;nbsp;MIT. Хотя в&amp;nbsp;w2k3 он&amp;nbsp;не совсем такой, какой он&amp;nbsp;у MIT. Он&amp;nbsp;использует некоторые поля, которые в&amp;nbsp;стандарте можно использовать для&amp;nbsp;своих целей разработчикам, для&amp;nbsp;передачи авторизационной информации. Что&amp;nbsp;же&amp;nbsp;даёт Kerberos? Он&amp;nbsp;даёт необходимую прозрачную сетевую аутентификацию. Почему же&amp;nbsp;он не&amp;nbsp;используется повсеместно? Потому, что&amp;nbsp;усложняет программы (есть даже такой термин керберизация). Керберизация означает однозначное завязывание на&amp;nbsp;одну библиотеку и&amp;nbsp;один вариант аутентификации, а&amp;nbsp;использование стандартного PAM&amp;nbsp;требует ввода пароля &amp;#8220;by design&amp;#8221;. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, что&amp;nbsp;одноранговых сетях омжно заменить на&amp;nbsp;Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... Кроме того Kerberos требует выделенного сервера &amp;ndash; KDC, то&amp;nbsp;есть кербризация в&amp;nbsp;одноранговой сети не&amp;nbsp;предусмотрена. Интерфейсы же&amp;nbsp;приложений, тем&amp;nbsp;более если они&amp;nbsp;сетевые, могут быть любыми удобными, поскольку никакой unix-way не&amp;nbsp;решает вопроса глобальной сетевой аутентификации. Открываем сокет.... И&amp;nbsp;там уже&amp;nbsp;что ни&amp;nbsp;поподя... &lt;a  href="http://freesource.info/wiki/Texnologii/OpenSSL&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;SSL">SSL&lt;/a>, HTTPS, &lt;a  href="http://freesource.info/wiki/Texnologii/OpenID&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;ID">OpenID&lt;/a>, Kerberos, ...&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Основной целью этой статьи является прояснение технических проблем использования &lt;a  href="http://freesource.info/wiki/Stat'jaKlassicheskijjUnixWay&amp;" class="" title="Статья&amp;nbsp;Классический&amp;nbsp;Unix&amp;nbsp;Way">классического Unix Way&lt;/a> на&amp;nbsp;практике.&lt;br />
Первый вариант этой статьи был&amp;nbsp;написан как&amp;nbsp;комментарий к&amp;nbsp;статье &lt;a  href="http://freesource.info/wiki/IdeologijaLinux&amp;" class="" title="Идеология&amp;nbsp;Linux">идеология Linux&lt;/a> в&amp;nbsp;отношении к&amp;nbsp;части о&amp;nbsp;проявлении вреда (Free|Open)Source.&lt;br />
К&amp;nbsp;сожалению, комментарий канул в&amp;nbsp;лету, но&amp;nbsp;его копия чудом сохранилась.&lt;br />
У&amp;nbsp;современных систем средства класса IPC&amp;nbsp;(в классическом случае это&amp;nbsp;каналы и&amp;nbsp;параметры, переданные приложению как&amp;nbsp;подстановка строки выданной другим приложением)&lt;br />
имеют тенденцию объединяться с&amp;nbsp;RPC.  Конечно, сетевое взаимодействие можно также представить в&amp;nbsp;виде взаимодействия приложений передающих команды через параметры&lt;br />
коммандной строки и&amp;nbsp;каналы. Но&amp;nbsp;так нигде не&amp;nbsp;сделано. Во-первых это&amp;nbsp;связано с&amp;nbsp;проблемами безопасности и&amp;nbsp;сетевой аутентификацией, во-вторых &amp;ndash; с&amp;nbsp;необходимостью адекватной&lt;br />
авторизации, где&amp;nbsp;немаловажную роль играют идентификторы (aka uid&amp;nbsp;и&amp;nbsp;gid). &lt;br />
Из&amp;nbsp;основных свойств архитектуры Unix, следует, классический unix-way не&amp;nbsp;предполагает, что&amp;nbsp;программа не&amp;nbsp;может быть запущена вне&amp;nbsp;рамок локального процесса.&lt;br />
А&amp;nbsp;это означает, невозможность запуска команды или&amp;nbsp;серии комманд и&amp;nbsp;удалённого выполнения. А&amp;nbsp;если таких задач становится много? Некоторые решаются и&amp;nbsp;создают&lt;br />
свои велосипеды или&amp;nbsp;протоколы, но&amp;nbsp;обычно над&amp;nbsp;этим никто не&amp;nbsp;задумывается до&amp;nbsp;самого последнего момента. Природа запуска приложений в&amp;nbsp;Unix такова, что&amp;nbsp;аутентификация&lt;br />
тесно связана идентификатором пользователя  от&amp;nbsp;имени которого выполняются все&amp;nbsp;приложения в&amp;nbsp;рамках сессии. Для&amp;nbsp;типичных команд в&amp;nbsp;Unix это&amp;nbsp;так называемая или&lt;br />
коммандный интерпретатор. Именно этот идентификатор определяет права пользователя в&amp;nbsp;локальной системе, для&amp;nbsp;удалённого же&amp;nbsp;хоста требуется сетевая аутетнификация.&lt;br />
Вообще тема сетевой аутентификации &amp;ndash; это&amp;nbsp;сложная и&amp;nbsp;запутанная вещь. Чтобы в&amp;nbsp;неё вникнуть нужно осознать как&amp;nbsp;работает локальная. А&amp;nbsp;локальная же&amp;nbsp;работает достаточно&lt;br />
просто. При&amp;nbsp;входе в&amp;nbsp;систему, на&amp;nbsp;основании удачного завершения действия auth, правильно скофигурированных модулей &lt;a  href="http://freesource.info/wiki/Texnologii/PAM&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;PAM">PAM&lt;/a>, родительскому процессу пользователя назначаются  идентификаторы пользователя (uid) и&amp;nbsp;группы (gid). Далее это&amp;nbsp;сохраняетя на&amp;nbsp;время всей сессии и&amp;nbsp;аутентификация проводится ядром прозрачно на&amp;nbsp;уровне локального хоста.&lt;br />
Важным моментов является выделение нескольких видов идентификаторов, в&amp;nbsp;общем виде назовём их&amp;nbsp;по эффективными. Права на&amp;nbsp;смену этих идентификаторов есть только у&lt;br />
супер-пользоателя. В&amp;nbsp;этом плане существует ещё большая проблема. Авторизоваться в&amp;nbsp;Unix Way&amp;nbsp;стандартными методами ядра возможна только посредством файловой системы.&lt;br />
Всё остальное &amp;ndash; это&amp;nbsp;надстройки и&amp;nbsp;костыли... &lt;br />
Последние два&amp;nbsp;находятся на&amp;nbsp;файловой системе и&amp;nbsp;для работы с&amp;nbsp;ними требуется каким-либо образом передать клиенту имя&amp;nbsp;файла для&amp;nbsp;обращения к&amp;nbsp;сервису. Для&amp;nbsp;этого&lt;br />
обычно используются, например в&amp;nbsp;D-BUS, переменные окружения или&amp;nbsp;файлы настройки в&amp;nbsp;домашнем каталоге. В&amp;nbsp;первом случае, чтобы клиент мог&amp;nbsp;воспользоваться&lt;br />
таким сервисом, этот сервис должен быть запущен до&amp;nbsp;запуска его&amp;nbsp;клиентов, чтобы родительскому процессу всего дерева процессов клиента могла быть передана&lt;br />
соотвествующая переменная окружения. Во&amp;nbsp;втором же&amp;nbsp;случае, должен существовать либо путь, вычисляемый по&amp;nbsp;умолчанию, либо отдельная настройка под&amp;nbsp;каждого&lt;br />
клиента. В&amp;nbsp;любом случае, при&amp;nbsp;использовании файлов, авторизовывать клиента целесообразно только на&amp;nbsp;уровне доступа к&amp;nbsp;этому файлу (с помощью группы или&amp;nbsp;ACL),&lt;br />
что&amp;nbsp;означает необходимость создания разных файлов для&amp;nbsp;разных клиентов, чтобы отличать их&amp;nbsp;друг от&amp;nbsp;друга.&lt;br />
В&amp;nbsp;самом удачном варианте это&amp;nbsp;требует создания сложной инфраструктуры для&amp;nbsp;поддержки этого механизма. Если таких служб станет много, то&amp;nbsp;без шаблонов&lt;br />
привилегий тут&amp;nbsp;не&amp;nbsp;обойтись... Одним из&amp;nbsp;вариантов стандартизации на&amp;nbsp;этом уровне является связка HAL/D-BUS/PolicyKit&lt;br />
Тем&amp;nbsp;не&amp;nbsp;менее, в&amp;nbsp;своём большинстве, в&amp;nbsp;силу необходимости удалённого управления, большинство решений, например mpd, работают с&amp;nbsp;помощью сокетов. И&amp;nbsp;тут возникает&lt;br />
весьма не&amp;nbsp;простая вещь. Возникает новый класс сетевых пользователей, даже если эти&amp;nbsp;пользователи на&amp;nbsp;самом деле локальные. Любая задача вида:&lt;br />
требует отдельной аутентификации... В&amp;nbsp;самом небезопасном случае, это&amp;nbsp;означает, что&amp;nbsp;по&amp;nbsp;домашнему каталогу пользователя и&amp;nbsp;по /etc начинают расползаться вбитые пароли.&lt;br />
А&amp;nbsp;что если пароль измениться? Его&amp;nbsp;придётся изменять у&amp;nbsp;всех клиентов. Кроме того это&amp;nbsp;не&amp;nbsp;удобно для&amp;nbsp;сервера &amp;ndash; у&amp;nbsp;него нет&amp;nbsp;стандартного средства кроме PAM, и&amp;nbsp;он вынужден&lt;br />
каждый раз&amp;nbsp;требовать пароль.&lt;br />
Многие задачи, как&amp;nbsp;в&amp;nbsp;показанном в&amp;nbsp;начале примере, решаются поверх протокола SSH, но&amp;nbsp;полноценный RPC&amp;nbsp;на&amp;nbsp;нём сделать не&amp;nbsp;просто, поскольку он&amp;nbsp;не предназначен для&amp;nbsp;решения&lt;br />
всего спектра задач необходимых при&amp;nbsp;удалённом управлении. Прежде всего потому, что&amp;nbsp;спроектирован как&amp;nbsp;удалённая консоль и&amp;nbsp;для использования системными службами не&lt;br />
предназначен. &lt;br />
Связи между реализациями классического Unix Way&amp;nbsp;и&amp;nbsp;современными задачами, требующими сетевой аутентификации и&amp;nbsp;авторизации нет. Именно это&amp;nbsp;мешает сделать простым запуск команды на&amp;nbsp;удалённом хосте. Отсутствие этой связи можно проследить отсутствием связи между отдельными подсистемами ядра, поскольку именно на&amp;nbsp;уровне ядра происходит распределение полномочий&lt;br />
процессов. Сетевая аутентификация и&amp;nbsp;авторизация никак на&amp;nbsp;вписывается в&amp;nbsp;Unix Way, поскольку реализуется на&amp;nbsp;прикладном уровне.  Здесь ещё не&amp;nbsp;хватает сетевой файловой системы  и&amp;nbsp;соответствия&lt;br />
между uid'ами и&amp;nbsp;gid'ами на&amp;nbsp;локальном и&amp;nbsp;удалённом хостах. Это&amp;nbsp;тоже  не&amp;nbsp;вписывается в&amp;nbsp;текущие реализации классического Unix Way.&lt;br />
Основную мысль рассуждения, хотелось бы&amp;nbsp;завершить следующим резюме. Пока не&amp;nbsp;будет придумана и&amp;nbsp;реализована общая схема интеграции IPC&amp;nbsp;и&amp;nbsp;RPC,&lt;br />
пока не&amp;nbsp;будут организованы стандарные средства и&amp;nbsp;API для&amp;nbsp;единой и&amp;nbsp;прозрачной сетевой и&amp;nbsp;локальной аутентификации, пути к&amp;nbsp;современным корпоративным&lt;br />
средам у&amp;nbsp;Unix Way&amp;nbsp;нет. К&amp;nbsp;сожалению, к&amp;nbsp;моменту когда они&amp;nbsp;будут реализованы, всё уже&amp;nbsp;тоже может оказаться слишком далеко ушедшим.&lt;br />
Это&amp;nbsp;уже сейчас почти так...&lt;br />
На&amp;nbsp;самом деле всё уже&amp;nbsp;есть. Есть Kerberos и&amp;nbsp;именно он&amp;nbsp;используется в&amp;nbsp;w2k3, и&amp;nbsp;именно про&amp;nbsp;него аппелируют к&amp;nbsp;MIT. Хотя в&amp;nbsp;w2k3 он&amp;nbsp;не совсем такой, какой он&amp;nbsp;у MIT.&lt;br />
Он&amp;nbsp;использует некоторые поля, которые в&amp;nbsp;стандарте можно использовать для&amp;nbsp;своих целей разработчикам, для&amp;nbsp;передачи авторизационной информации. Что&amp;nbsp;же&amp;nbsp;даёт Kerberos?&lt;br />
Он&amp;nbsp;даёт необходимую прозрачную сетевую аутентификацию. Почему же&amp;nbsp;он не&amp;nbsp;используется повсеместно? Потому, что&amp;nbsp;усложняет программы (есть даже такой&lt;br />
термин керберизация). Керберизация означает однозначное завязывание на&amp;nbsp;одну библиотеку и&amp;nbsp;один вариант аутентификации, а&amp;nbsp;использование стандартного PAM&lt;br />
требует ввода пароля &amp;#8220;by design&amp;#8221;. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, что&lt;br />
одноранговых сетях омжно заменить на&amp;nbsp;Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... Кроме&lt;br />
того Kerberos требует выделенного сервера &amp;ndash; KDC, то&amp;nbsp;есть кербризация в&amp;nbsp;одноранговой сети не&amp;nbsp;предусмотрена. Интерфейсы же&amp;nbsp;приложений, тем&amp;nbsp;более&lt;br />
если они&amp;nbsp;сетевые, могут быть любыми удобными, поскольку никакой unix-way не&amp;nbsp;решает вопроса глобальной сетевой аутентификации. Открываем сокет....&lt;br />
И&amp;nbsp;там уже&amp;nbsp;что ни&amp;nbsp;поподя... &lt;a  href="http://freesource.info/wiki/Texnologii/OpenSSL&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;SSL">SSL&lt;/a>, HTTPS, &lt;a  href="http://freesource.info/wiki/Texnologii/OpenID&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;ID">OpenID&lt;/a>, Kerberos, ...&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-10 09:42:45</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-10+09%3A42%3A45</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+09%3A42%3A45">2008-02-10 09:42:45&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+20%3A52%3A22">2008-02-10 20:52:22&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ol type="3">&lt;li> Файл сокета&lt;/li>&lt;/ol>
обычно используются, например в&amp;nbsp;D-BUS, переменные окружения или&amp;nbsp;файлы настройки в&amp;nbsp;домашнем каталоге. В&amp;nbsp;первом случае, чтобы клиент мог&amp;nbsp;воспользоваться&lt;br />
таким сервисом, этот сервис должен быть запущен до&amp;nbsp;запуска его&amp;nbsp;клиентов, чтобы родительскому процессу всего дерева процессов клиента могла быть передана&lt;br />
соотвествующая переменная окружения. Во&amp;nbsp;втором же&amp;nbsp;случае, должен существовать либо путь, вычисляемый по&amp;nbsp;умолчанию, либо отдельная настройка под&amp;nbsp;каждого&lt;br />
клиента. В&amp;nbsp;любом случае, при&amp;nbsp;использовании файлов, авторизовывать клиента целесообразно только на&amp;nbsp;уровне доступа к&amp;nbsp;этому файлу (с помощью группы или&amp;nbsp;ACL),&lt;br />
что&amp;nbsp;означает необходимость создания разных файлов для&amp;nbsp;разных клиентов, чтобы отличать их&amp;nbsp;друг от&amp;nbsp;друга.&lt;br />
В&amp;nbsp;самом удачном варианте это&amp;nbsp;требует создания сложной инфраструктуры для&amp;nbsp;поддержки этого механизма. Если таких служб станет много, то&amp;nbsp;без шаблонов&lt;br />
привилегий тут&amp;nbsp;не&amp;nbsp;обойтись... Одним из&amp;nbsp;вариантов стандартизации на&amp;nbsp;этом уровне является связка HAL/D-BUS/PolicyKit&lt;br />
требует отдельной аутентификации... В&amp;nbsp;самом небезопасном случае, это&amp;nbsp;означает, что&amp;nbsp;по&amp;nbsp;домашнему каталогу пользователя и&amp;nbsp;по /etc начинают расползаться вбитые пароли.&lt;a name="h8270-1">&lt;/a>&lt;h2> Следствия &lt;/h2>
Многие задачи, как&amp;nbsp;в&amp;nbsp;показанном в&amp;nbsp;начале примере, решаются поверх протокола SSH, но&amp;nbsp;полноценный RPC&amp;nbsp;на&amp;nbsp;нём сделать не&amp;nbsp;просто, поскольку он&amp;nbsp;не предназначен для&amp;nbsp;решения&lt;br />
всего спектра задач необходимых при&amp;nbsp;удалённом управлении. Прежде всего потому, что&amp;nbsp;спроектирован как&amp;nbsp;удалённая консоль и&amp;nbsp;для использования системными службами не&lt;br />
предназначен. &lt;br />
Связи между реализациями классического Unix Way&amp;nbsp;и&amp;nbsp;современными задачами, требующими сетевой аутентификации и&amp;nbsp;авторизации нет. Именно это&amp;nbsp;мешает сделать простым запуск команды на&amp;nbsp;удалённом хосте. Отсутствие этой связи можно проследить отсутствием связи между отдельными подсистемами ядра, поскольку именно на&amp;nbsp;уровне ядра происходит распределение полномочий&lt;br />
процессов. Сетевая аутентификация и&amp;nbsp;авторизация никак на&amp;nbsp;вписывается в&amp;nbsp;Unix Way, поскольку реализуется на&amp;nbsp;прикладном уровне.  Здесь ещё не&amp;nbsp;хватает сетевой файловой системы  и&amp;nbsp;соответствия&lt;br />
между uid'ами и&amp;nbsp;gid'ами на&amp;nbsp;локальном и&amp;nbsp;удалённом хостах. Это&amp;nbsp;тоже  не&amp;nbsp;вписывается в&amp;nbsp;текущие реализации классического Unix Way.&lt;br />
Основную мысль рассуждения, хотелось бы&amp;nbsp;завершить следующим резюме. Пока не&amp;nbsp;будет придумана и&amp;nbsp;реализована общая схема интеграции IPC&amp;nbsp;и&amp;nbsp;RPC,&lt;br />
пока не&amp;nbsp;будут организованы стандарные средства и&amp;nbsp;API для&amp;nbsp;единой и&amp;nbsp;прозрачной сетевой и&amp;nbsp;локальной аутентификации, пути к&amp;nbsp;современным корпоративным&lt;br />
средам у&amp;nbsp;Unix Way&amp;nbsp;нет. К&amp;nbsp;сожалению, к&amp;nbsp;моменту когда они&amp;nbsp;будут реализованы, всё уже&amp;nbsp;тоже может оказаться слишком далеко ушедшим.&lt;br />
требует ввода пароля &amp;#8220;by design&amp;#8221;. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, что&lt;br />
одноранговых сетях омжно заменить на&amp;nbsp;Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... Кроме&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;ol type="3">&lt;li>  Файл сокета&lt;/li>&lt;/ol>
обычно используются, например в&amp;nbsp;D-BUS, переменные окружения. То&amp;nbsp;есть, что&amp;nbsp;бы&amp;nbsp;клиент мог&amp;nbsp;им&amp;nbsp;воспользоваться сервис должен быть запущен до&amp;nbsp;клиента и&amp;nbsp;родительскому&lt;br />
процессу всего дерева процессов пользователя должна быть передана соотвествующая переменная окружения. С&amp;nbsp;другой стороны это&amp;nbsp;может быть файл в&amp;nbsp;домашнем&lt;br />
каталоге пользователя. Но&amp;nbsp;тогда возникает вопрос о&amp;nbsp;том, как&amp;nbsp;быть,  если сервис запущен не&amp;nbsp;от имени пользователя. Вероятно с&amp;nbsp;помощью ACL&amp;nbsp;или группы.&lt;br />
И&amp;nbsp;то и&amp;nbsp;другое требует действий администратора как&amp;nbsp;во&amp;nbsp;время настройки, так&amp;nbsp;и&amp;nbsp;во время добавления новых пользователей. Если таких служб станет много, то&amp;nbsp;без&lt;br />
шаблонов привилегий тут&amp;nbsp;не&amp;nbsp;обойтись...&lt;br />
требует отдельной аутентификации... В&amp;nbsp;самом небезопасном случае, это&amp;nbsp;означает, что&amp;nbsp;по&amp;nbsp;домашнему каталогу пользователя и&amp;nbsp;по /etc/ начинают расползаться вбитые пароли.&lt;br />
Что&amp;nbsp;же&amp;nbsp;здесь ещё не&amp;nbsp;учтено... Ага&amp;nbsp;здесь ещё не&amp;nbsp;хватает сетевой файловой системы. И&amp;nbsp;соответствия между uid'ами и&amp;nbsp;gid'ами на&amp;nbsp;локальном и&amp;nbsp;удалённом хостах.&lt;br />
Вроде всё из&amp;nbsp;основных проблем... Если вы&amp;nbsp;ещё не&amp;nbsp;потеряли мысль рассуждения, то&amp;nbsp;завершить его&amp;nbsp;хотелось бы&amp;nbsp;следующим. Пока не&amp;nbsp;будет придумана и&amp;nbsp;реализована&lt;br />
общая схема интеграции IPC&amp;nbsp;и&amp;nbsp;RPC, пока не&amp;nbsp;будут орагнизованы стандарные средства и&amp;nbsp;API для&amp;nbsp;единой и&amp;nbsp;прозрачной сетевой и&amp;nbsp;локальной аутентификации, пути&lt;br />
к&amp;nbsp;современным корпоративным средам у&amp;nbsp;Unix Way&amp;nbsp;нет. К&amp;nbsp;сожалению, к&amp;nbsp;моменту когда они&amp;nbsp;будут реализованы, всё уже&amp;nbsp;тоже может оказаться слишком далеко ушедшим.&lt;br />
требует ввода пароля. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, что&lt;br />
одноранговых сетях заменяется сейчас Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... Кроме&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-10 09:30:59</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-10+09%3A30%3A59</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+09%3A30%3A59">2008-02-10 09:30:59&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+09%3A42%3A45">2008-02-10 09:42:45&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">процессу всего дерева процессов пользователя должна быть передана соотвествующая переменная окружения. С&amp;nbsp;другой стороны это&amp;nbsp;может быть файл в&amp;nbsp;домашнем&lt;br />
каталоге пользователя. Но&amp;nbsp;тогда возникает вопрос о&amp;nbsp;том, как&amp;nbsp;быть,  если сервис запущен не&amp;nbsp;от имени пользователя. Вероятно с&amp;nbsp;помощью ACL&amp;nbsp;или группы.&lt;br />
И&amp;nbsp;то и&amp;nbsp;другое требует действий администратора как&amp;nbsp;во&amp;nbsp;время настройки, так&amp;nbsp;и&amp;nbsp;во время добавления новых пользователей. Если таких служб станет много, то&amp;nbsp;без&lt;br />
На&amp;nbsp;самом деле всё уже&amp;nbsp;есть. Есть Kerberos и&amp;nbsp;именно он&amp;nbsp;используется в&amp;nbsp;w2k3, и&amp;nbsp;именно про&amp;nbsp;него аппелируют к&amp;nbsp;MIT. Хотя в&amp;nbsp;w2k3 он&amp;nbsp;не совсем такой, какой он&amp;nbsp;у MIT.&lt;br />
Он&amp;nbsp;использует некоторые поля, которые в&amp;nbsp;стандарте можно использовать для&amp;nbsp;своих целей разработчикам, для&amp;nbsp;передачи авторизационной информации. Что&amp;nbsp;же&amp;nbsp;даёт Kerberos?&lt;br />
Он&amp;nbsp;даёт необходимую прозрачную сетевую аутентификацию. Почему же&amp;nbsp;он не&amp;nbsp;используется повсеместно? Потому, что&amp;nbsp;усложняет программы (есть даже такой&lt;br />
термин керберизация). Керберизация означает однозначное завязывание на&amp;nbsp;одну библиотеку и&amp;nbsp;один вариант аутентификации, а&amp;nbsp;использование стандартного PAM&lt;br />
требует ввода пароля. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, что&lt;br />
одноранговых сетях заменяется сейчас Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... Кроме&lt;br />
того Kerberos требует выделенного сервера &amp;ndash; KDC, то&amp;nbsp;есть кербризация в&amp;nbsp;одноранговой сети не&amp;nbsp;предусмотрена. Интерфейсы же&amp;nbsp;приложений, тем&amp;nbsp;более&lt;br />
если они&amp;nbsp;сетевые, могут быть любыми удобными, поскольку никакой unix-way не&amp;nbsp;решает вопроса глобальной сетевой аутентификации. Открываем сокет....&lt;br />
И&amp;nbsp;там уже&amp;nbsp;что ни&amp;nbsp;поподя... &lt;a  href="http://freesource.info/wiki/Texnologii/OpenSSL&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;SSL">SSL&lt;/a>, HTTPS, &lt;a  href="http://freesource.info/wiki/Texnologii/OpenID&amp;" class="" title="Технологии&amp;nbsp;/&amp;nbsp;Open&amp;nbsp;ID">OpenID&lt;/a>, Kerberos, ...&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">процессу всего дерева процессов пользователя должна быть передана соотвествующая переменная окружения. С&amp;nbsp;другой стороны это&amp;nbsp;может быть файл в&amp;nbsp;д&lt;br />
омашнем каталоге пользователя. Но&amp;nbsp;тогда возникает вопрос о&amp;nbsp;том, как&amp;nbsp;быть,  если сервис запущен не&amp;nbsp;от имени пользователя. Вероятно с&amp;nbsp;помощью ACL&amp;nbsp;или групп&lt;br />
ы. И&amp;nbsp;то и&amp;nbsp;другое требует действий администратора как&amp;nbsp;во&amp;nbsp;время настройки, так&amp;nbsp;и&amp;nbsp;во время добавления новых пользователей. Если таких служб станет много, то&amp;nbsp;без&lt;br />
На&amp;nbsp;самом деле всё уже&amp;nbsp;есть. Есть Kerberos и&amp;nbsp;именно он&amp;nbsp;используется в&amp;nbsp;w2k3, и&amp;nbsp;именно про&amp;nbsp;него аппелируют к&amp;nbsp;MIT. Хотя в&amp;nbsp;w2k3 он&amp;nbsp;не совсем такой, какой он&amp;nbsp;у&lt;br />
 MIT. Он&amp;nbsp;использует некоторые поля, которые в&amp;nbsp;стандарте можно использовать для&amp;nbsp;своих целей разработчикам, для&amp;nbsp;передачи авторизационной информации. Что&amp;nbsp;же&lt;br />
 даёт Kerberos? Он&amp;nbsp;даёт необходимую прозрачную сетевую аутентификацию. Почему же&amp;nbsp;он не&amp;nbsp;используется повсеместно? Потому, что&amp;nbsp;усложняет программы (есть да&lt;br />
же&amp;nbsp;такой термин керберизация). Керберизация означает однозначное завязывание на&amp;nbsp;одну библиотеку и&amp;nbsp;один вариант аутентификации, а&amp;nbsp;использование стандартно&lt;br />
го&amp;nbsp;PAM требует ввода пароля. Есть попытка сделать более стандартную обёртку &amp;ndash; GSSAPI. К&amp;nbsp;сожалению, эта&amp;nbsp;обёртка на&amp;nbsp;практике очень капризна (требует DNS, ч&lt;br />
то&amp;nbsp;в одноранговых сетях заменяется сейчас Avahi) &amp;ndash; многие разработчики и&amp;nbsp;администраторы её не&amp;nbsp;очень жалуют, хотя за&amp;nbsp;всех сказать конечно не&amp;nbsp;возьмусь... К&lt;br />
роме того Kerberos требует выделенного сервера &amp;ndash; KDC, то&amp;nbsp;есть кербризация в&amp;nbsp;одноранговой сети не&amp;nbsp;предусмотрена.&lt;br />
Интерфейсы же&amp;nbsp;приложений, тем&amp;nbsp;более если они&amp;nbsp;сетевые, могут быть любыми удобными, поскольку никакой unix-way не&amp;nbsp;решает вопроса глобальной сетевой аутенти&lt;br />
фикации. Открываем сокет.... И&amp;nbsp;там уже&amp;nbsp;что ни&amp;nbsp;поподя... SSL, HTTPS, &lt;span class="missingpage">Open&amp;nbsp;ID&lt;/span>&lt;a href="http://freesource.info/wiki/OpenID/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, Kerberos, ...&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-10 09:28:33</title>
<link>http://freesource.info/wiki/NotUnixWay/show?time=2008-02-10+09%3A28%3A33</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NotUnixWay&amp;" class="">/Not&amp;nbsp;Unix&amp;nbsp;Way&lt;/a> за &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+09%3A28%3A33">2008-02-10 09:28:33&lt;/a> и &lt;a href="http://freesource.info/wiki/NotUnixWay?time=2008-02-10+09%3A30%3A59">2008-02-10 09:30:59&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ul>&lt;li> &lt;a href="http://gazette.linux.ru.net/rus/articles/gariki.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />Linux Gazzete about Unix Way&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;ul>&lt;li> ((&lt;a href="http://gazette.linux.ru.net/rus/articles/gariki.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://gazette.linux.ru.net/rus/articles/gariki.html&lt;/a> ))&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
