Sysvinit

Материал из ALT Linux Wiki

Перейти к: навигация, поиск

Содержание

[править] Использование SysVinit на p7+

[править] Сборки

[править] polkit

При использовании systemd-logind вместо ConsoleKit нарушается возможность использовать функции, завязанные на polkit.

Однако есть возможность частично решить эту проблему. Необходимо для части операций изменить поведение polkit по умолчанию.

См. тж. polkit-sysvinit или далее.

[править] флэшки

Для связанных с монтированием устройств действий необходимо создать файл /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)!)

Такая же ошибка будет, если в системе с sysvinit имеется пакет systemd-services. Его нужно удалить и перезагрузиться.

[править] Разное

  • Q: Running in chroot, ignoring request.
    A: servicectl есть в сизифе и p7/t7

[править] Примечания

  1. Начиная с версии 0.106, метод с правкой файлов *.pkla в каталоге /etc/polkit-1/localauthority/ не работает
 
Личные инструменты