[devel] ConsoleKit vs pam_console

Alexander Bokovoy =?iso-8859-1?q?ab_=CE=C1_altlinux=2Eorg?=
Пт Окт 31 22:33:23 MSK 2008


2008/10/31 Michael Shigorin <mike на osdn.org.ua>:
> On Fri, Oct 31, 2008 at 03:42:13PM +0300, Stanislav Ievlev wrote:
>> Вот например разработка замены pam_console
>> растянулась в два раза по сравнению с первоначальными мечтами.
>
> И некоторые так и не поняли -- зачем форкать такое количество
> барахла и держать его в памяти, когда люди стремятся к обратному
> -- батарейку растянуть...
>
> Вообще кому это в голову пришло и зачем, из этой статьи:
> http://fedoraproject.org/wiki/Releases/FeatureRemovePAMConsole
> и её истории -- совершенно неочевидно.  Мож кто знает?
По-моему, из текста все достаточно ясно и очевидно.

pam_console предназначен для автоматического назначения прав
устройствам (и создания их если необходимо), а также содержания
/var/run/console/*. Эти услуги создавались для того, чтобы облегчить
организацию типичного однопользовательского GNU/Linux-десктопа: права
автоматически выставляются при логине пользователя в консоли/dm,
сбрасываются при его выходе из системы.

В дальнейшем некоторые приложения (D-Bus) стали ориентироваться на
информацию, оставляемую pam_console в /var/run/console при определении
активного пользователя на десктопе.

Такой подход в нынешней ситуации ограничивает варианты использования
машин. Стало реальностью использование нескольких графических сеансов
на одной и той же машине, в дополнение к традиционным "тонким"
клиентам появились еще и обычные множественные сеансы на одной машине
с быстрым переключением между ними (multi-user fast switching),
ставшие популярными после появления этого режима в других ОС.

Архитектура pam_console не отвечает новым требованиям к
многопользовательским сеансам. Они были возможны и ранее, но не имели
преимущественного значения для графических окружений.  В первую
очередь эти требования направлены на повышение защищенности информации
о пользователях, которые присутствуют в системе одновременно. Многие
приложения не использовали PAM по назначению и, в частности, не
вызывали pam_end() тогда, когда это необходимо. Происходит утечка прав
доступа, а при одновременной работе пользователей необходимо
систематически переключать права доступа на устройства, либо
реализовать более гранулированный доступ на уровне ядра.

Все эти проблемы реально мешают сделать защищенную
многопользовательскую графическую среду, а pam_console становится
мягко говоря неадекватным решением.

-- 
/ Alexander Bokovoy


Подробная информация о списке рассылки Devel