Sysvinit: различия между версиями
м (→Разное: servicectl упакован (но может потребовать копирования в чрут)) |
м (→polkit: +NetworkManager) |
||
Строка 4: | Строка 4: | ||
При использовании {{cmd|systemd-logind}} вместо {{pkg|ConsoleKit}} нарушается возможность использовать функции, завязанные на {{pkg|polkit}}. | При использовании {{cmd|systemd-logind}} вместо {{pkg|ConsoleKit}} нарушается возможность использовать функции, завязанные на {{pkg|polkit}}. | ||
Однако есть возможность частично решить эту проблему. Необходимо для части операций | Однако есть возможность частично решить эту проблему. Необходимо для части операций изменить поведение {{pkg|polkit}} по умолчанию. | ||
=== флэшки === | |||
Для связанных с монтированием устройств действий необходимо создать файл {{path|/etc/polkit-1/rules.d/60-mount.rules}}<ref>Начиная с версии 0.106, метод с правкой файлов {{path|*.pkla}} в каталоге {{path|/etc/polkit-1/localauthority/}} не работает</ref>. | |||
<pre> | <pre> | ||
polkit.addRule(function(action, subject) { | polkit.addRule(function(action, subject) { | ||
Строка 38: | Строка 42: | ||
}); | }); | ||
</pre> | </pre> | ||
=== NetworkManager === | |||
Аналогично: {{path|/etc/polkit-1/rules.d/60-nm.rules}} вида | |||
<pre> | |||
polkit.addRule(function(action, subject) { | |||
if (subject.isInGroup("_nmconnect") && (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 )) { | |||
return polkit.Result.YES; | |||
} | |||
}); | |||
</pre> | |||
(обратите внимание, что группа <tt>_nmconnect</tt> здесь [http://lists.altlinux.org/pipermail/sisyphus/2013-July/361023.html специальная], без неё будет ошибка вроде <tt>(32) No session found for uid 500 (unknown)</tt>!) | |||
== Сборки == | == Сборки == |
Версия от 20:31, 14 марта 2015
Использование SysVinit на p7+
polkit
При использовании systemd-logind вместо ConsoleKit нарушается возможность использовать функции, завязанные на polkit.
Однако есть возможность частично решить эту проблему. Необходимо для части операций изменить поведение polkit по умолчанию.
флэшки
Для связанных с монтированием устройств действий необходимо создать файл /etc/polkit-1/rules.d/60-mount.rules[1].
polkit.addRule(function(action, subject) { if ( ( action.id == "org.freedesktop.udisks2.filesystem-mount" || action.id == "org.freedesktop.udisks2.filesystem-mount-system" || action.id == "org.freedesktop.udisks2.filesystem-mount-system-internal" ) && subject.isInGroup("storage") ) { return polkit.Result.YES; } }); polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.udisks2.eject-media" && subject.isInGroup("storage") ) { return polkit.Result.YES; } });
В этом примере возвращается разрешения на действия "org.freedesktop.udisks2.filesystem-mount" и "org.freedesktop.udisks2.eject-media", если пользователь находится в группе "storage".
Если вы уверены, что такие меры безопасности на данной машине слишком суровы, то содержимое файла можно упростить до вседозволенности:
polkit.addRule(function(action, subject) { if ( action.id == "org.freedesktop.udisks2.filesystem-mount" || action.id == "org.freedesktop.udisks2.filesystem-mount-system" || action.id == "org.freedesktop.udisks2.filesystem-mount-system-internal" ) { return polkit.Result.YES; } }); polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.udisks2.eject-media" ) { return polkit.Result.YES; } });
NetworkManager
Аналогично: /etc/polkit-1/rules.d/60-nm.rules вида
polkit.addRule(function(action, subject) { if (subject.isInGroup("_nmconnect") && (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 )) { return polkit.Result.YES; } });
(обратите внимание, что группа _nmconnect здесь специальная, без неё будет ошибка вроде (32) No session found for uid 500 (unknown)!)
Сборки
- http://fly.osdn.org.ua/~mike/iso/sysvinit/
- NB: часть этих образов на сизифе, устанавливать может быть лучше аналогичный стартеркит! (в уже выпущенных стартеркитах на sysvinit живут icewm, sysv-tde и wmaker)
- http://enp.itx.ru/linux/alt/t7/iso/
Разное
- Q: Running in chroot, ignoring request.
A: servicectl есть в сизифе и p7/t7
Примечания
- ↑ Начиная с версии 0.106, метод с правкой файлов *.pkla в каталоге /etc/polkit-1/localauthority/ не работает