LINUX.ORG.RU

Зачем нужен ConsoleKit?


0

1

Всем привет.

Как по мне, ConsoleKit не дает ничего кроме проблем с монтированием да кучи процессов в памяти. Подозреваю что я чего-то не знаю.

Погуглил. Ответы делятся на 2 категории:
Категория 1: «Он нужнен» с ссылкой на единственную фразу «ConsoleKit - это системный демон, который производит ряд действий...» которая копируется по всему интернету и больше похоже на маркетингоаое зазывалово: общие слова без какой-либо конкретики.
Категория 2: «Отключил - доволен».

Отсюда вопрос: Для чего конкретно нужен ConsoleKit? Какие минусы от его отключения?

Спасибо!

★★★★★

Обычно такие проблемы: не будут монтироваться флешки, не будет нормально работать networkmanager + nm-applet

Shtsh ★★★★
()

меня тоже вопрос интересует. консолькит на что-либо кроме возможности монтировки флешек без прав рута влияет?

fork_you
()
Ответ на: комментарий от Shtsh

> не будут монтироваться флешки
Не может быть. ConsoleKit появился не так давно; что, до его появления флешки не монтировались?

> не будет нормально работать networkmanager + nm-applet
Их можно отучить использовать consolekit. А значит без него будет все работать. Пруф для Gentoo

Что именно такого ценного делает СonsoleKit?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

А значит без него будет все работать

Не всё. Как минимум не сможешь глобальные соединения редактировать.

Shtsh ★★★★
()
Ответ на: комментарий от Kroz

>> что, до его появления флешки не монтировались?

С монтированием накопителей больше связан Policykit, нежели сабж. Хотя они всё равно обычно ходят вместе.

GotF ★★★★★
()
Ответ на: комментарий от Kroz

ConsoleKit используют менеджеры сессий kde, gnome, xfce, lxde. При использовании какого-нибудь wm-а, можно безболезненно от этого демона избавиться. То же монтирование флешек делать через правило udev, например. При использовании DE большого смысла выпиливать ConsoleKit нет, выигрыш ничтожный получается.

Что именно такого ценного делает СonsoleKit?

Подробнее о нем можно почитать здесь. Там же есть описание апи, который он предоставляет. Например, вот такой командой можно выключить компьютер без административных прав

dbus-send --system --print-reply --dest=«org.freedesktop.ConsoleKit» /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

ATIpro ★★
()
Ответ на: комментарий от tis

Опять же смотри http://www.freedesktop.org/software/ConsoleKit/doc/ConsoleKit.html и особенно вот это http://people.gnome.org/~mccann/talks/guadec-multiuser.pdf. Причем эта штука тупо работает и никому проблем не создает. Так что большого смысла выпиливать ее не вижу.

ATIpro ★★
()
Ответ на: комментарий от ATIpro

>Defining the Problem

To be written.

Да там и далее по тексту получается так:

«Вот работающая штука. Работает так и так.»

Но на вопрос: «А зачем?», так и не ответили. Много чего не создает проблем, когда работает в фоне, однако, бритву Оккама никто не отменял.

К сожалению, *Kit'ы еще одна малонужная сущность. Даже udisks и upower будут более необходимыми.

tis ★★
()
Ответ на: комментарий от tis

Но на вопрос: «А зачем?», так и не ответили.

Я не автор этой штуки, не пользуюсь ей напрямую, быть ее защитником мне ни разу не нужно. Еще раз. О причинах ее создания есть презентация, ссылка на которую уже приводилась http://people.gnome.org/~mccann/talks/guadec-multiuser.pdf. Перепечатывать ее содержание здесь не буду. Ключевыми словами тут являются Multi-User Desktop.

ATIpro ★★
()
Ответ на: комментарий от tis

> Да десктоп многопользовательским и раньше был как-никак.

Ты пытаешься меня в чем-то убедить? То, как оно было до создания этого кита в презентации тоже описано.

ATIpro ★★
()
Ответ на: комментарий от ATIpro

Сорри за «разбитое» сообщение - корпоративные настройки сети...

В презентации нашел ссылки, а по ним уже что-то более конкретное. Потихоньку проясняется.

Как я понял, ConsoleKit используется когда нужно чтобы:
1. На практике: Fast-User switching - если на одном компьютере одновременно запущены сессии для двух и более пользователей и они друг другу не мешали.
2. В теории (в будущем): если мы хотим чтобы сессия кочевала с одного устройства на другое (PC, ноутбук, планшет и т. д.).

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Рассмотрим только практическую (первую) задачу:

На самом деле это уже реализованов Линукс, по крайней мере в консоли. С помощью Ctrl+Alt+Fn мы можем свободно переключаться на VT и логиниться под разными юзерами.

Еще вопрос про разделение прав на ресурсы: например, мы хотим чтобы какой-то пользователь не имел доступа к сети или к регулировке звука. Впринципе, здесь можно назначить нужные права на /dev/*. Теоретически, таким образом не все можно разграничить, хотя лично я не могу придумать что такого критического так нельзя разграничить.

Еще одна проблема - если мы говорим про граф. среду, то переключение между пользователями приходится делать опять же по Ctrl+Alt+Fn и это происходит меделенно и с миганием экрана.

Еще в графической среде получается что трудно сделать выпадающую менюху с доступными «сессиями» и совсем невозможно - красивый эффект при переходе от одного пользователя к другому (например, поворачивающийся трехмерный куб).

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Мой вывод

Рождение ConsoleKit (с приблудами) вызано 1) невозможностью (неспособностью) разработчиков сделать нормальное переключение между виртуальными терминалами без задержек и мигания из-за смены видеорежимов (KMS?) и 2) несостоятельностью большинства пользователей освоить chmod и chown в применении к каталогу /dev .

Кроме того это абсолютно бесполезная вещь если нам достаточно чтобы на компьютере в одно время был залогинен только один пользователь (одна сессия).

Я прав?

Kroz ★★★★★
() автор топика
Ответ на: Мой вывод от Kroz

Скорее отсутствие удобной утилиты для правки прав. «Старые» утилиты типа chmod и chown работают в другом терминологическом пространстве: пользователь - доступ к файлам.

Это временами пересекается с задачей в пространстве - пользователь - доступ к сессии.

Таким образом, нужна утилита делающая преобразование типа пользователь - доступ к сессии методами chmod и chown, или еще чем из coreutils, например.

tis ★★
()

Эта штука нужна в многопользовательской системе с возможностью использования кучи виртуальных консолей

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

> Эта штука нужна в многопользовательской системе с возможностью использования кучи виртуальных консолей

То есть даже в консоли без GUI? Для чего? Есть реальный пример применения?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Для ассоциации хардварного терминала с пользователем. Простой пример: я всунул флешку. Какой пользователь должен иметь возможность с неё читать?

vasily_pupkin ★★★★★
()
Ответ на: Мой вывод от Kroz

Часто UNIX и похожие на UNIX системы совершенно бесполезны. Это многопользовательские, многозадачные системы.

anarquista ★★★★★
()
Ответ на: комментарий от anarquista

>Кто имеет право ее монтировать, отмонтировать, форматировать?

Как сисадмин права разделит.

Покажи-ка, пожалуйста пример, когда это можно реализовать *kit'ом,и нельзя обычными методами.

tis ★★
()
Ответ на: комментарий от vasily_pupkin

Ну да, и? Права на ФС - удалять, создавать и т.п. файлы,

права исполнять mkfs.*, например - форматировать флешку.

Что мешает воплотить «идеалогию сессий» этими методами?

tis ★★
()
Ответ на: комментарий от tis

Два раза. Это FAT, здесь могут и на хуй послать права на файлы имеет тот, кто её монтирует.

KblCb ★★★★★
()
Ответ на: комментарий от tis

В современном UNIX-like далеко не всё является файлами, и управлять классическими методами путем изменения групп и прав на файлы же не получается.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от tis

Во-первых это сложно. Во-вторых если просто выдать пользователю права на mount, mkfs.* и ещё что-то такого рода, случится что-то плохое.

KblCb ★★★★★
()
Ответ на: комментарий от KblCb

Ну, если я правильно понял, то при вставке флешки кроме /dev/sdX появляется еще и ссылка которая имеет такое же имя как и volume label флешки, а еще появляется символическая ссылка, которая совпадает с UUID. Соответственно ничего не мешает в простом sudoers разрешить монтировать одни флешки и запретить другие. Проблем не вижу.

Запретить делать mkfs - тоже через sudoers.

Вопрос пока открытый: зачем нужен consolekit? Что он делает такого что другие не могут?

Хоть кто-то на практике пользовался consolekit кроме того, что 99% дистрибутивов парят его по умолчанию?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Идентифицирует _сидящего_ перед монитором пользователя :]

vasily_pupkin ★★★★★
()

Киллер-фича consolekit в том, что из-за него policykit может определить, кто владеет активным VT, и дать ему дополнительные права (монтировать флешку, использовать сканер, выводить звук через pulseaudio и т.п.), а у остальных забрать эти права. В общем, он не нужен, как и policykit с dbus'ом, upower, udisks и прочим, но всё больше программ используют возможности этих демонов, потому что у них удобное API (например, можно проще и более гибко распределить права на dbus, чем, к примеру, на UNIX-сокет).

gentoo_root ★★★★★
()
Ответ на: комментарий от ZenitharChampion

> Моё KDE 3 к нему не привязано? А то хочу удалить

По-идее не должен. Но у меня оно обычно появляется только тогда, когда он действительно кому-то нужен. На системе с openbox-ом его нет, а с четвертыми кедами сам запускается.

ATIpro ★★
()
Ответ на: комментарий от vasily_pupkin

>Ок. Ты пришел к васе, записал на флешечку порно. Пришел к себе - и - упс. Прав нет. Ок?
Если на флешечке что-то типа UDF, Ext2/3/4, resierfs... то это определяется правами на файл. То бишь, если я записывал файлы под аккаунтом Vasya с ID=1000, а дома у меня аккаут Petya с ID=2000, и при условии что у Васи стоим корректный umask - да, дома я не смогу открыть под аккаунтом Petya. Если на флешке FAT - то с установками по дефолту я открыть могу в любом случае. Исключение - если мне не дано права монтировать флешечки или если мне не дано права монтировать именно эту флешечку идентифицируя ее посредством LABEL или UUID. Это делается в udev или через sudoers - разрешая 'mount *' или запрещая 'mount /dev/.../by-label/vasya_flash_drive'.

Ok?

Зачем здесь ConsoleKit?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Ну, если ты её хочешь монтировать руками, то оно конечно да. pmount, и ок. А если автоматом? В мультисите, с парой сессий, вовсе не очевидно, какой именно сессии можно это делать. Если хардкод устраивает, то можно много без чего обойтись (=

vasily_pupkin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.