[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