Sysvinit: различия между версиями

Материал из ALT Linux Wiki
м (→‎переход: +~reboot)
 
(не показано 16 промежуточных версий 5 участников)
Строка 1: Строка 1:
= Использование SysVinit на p7+ =
= Использование SysVinit на p7+ =
== Сборки ==
* [[Starterkits|стартеркиты]] (на sysvinit живут gnustep, icewm, sysv-tde и wmaker, а также rescue и все серверные)
** бывают экспериментальные образы в [http://nightly.altlinux.org/p7/beta/ beta/], ориентируйтесь на "sysv"
* аналогичные стартеркитам [[Regular|регулярные сборки]] (на [[sisyphus|сизифе]], осторожно!)
* http://enp.itx.ru/linux/alt/t7/iso/
== переход ==
На [[branches/p10|p10]] по зависимостям пакета startup понадобится пакет systemd-utils-standalone:
# apt-get install sysvinit sysvinit-utils sysvinit-initramfs
# apt-get remove libnss-systemd pam_systemd systemd systemd-analyze systemd-boot-efi systemd-utils-standalone+
Может потребоваться перезагрузка запасным методом вместо штатного {{cmd|reboot}} (программный аналог комбинации <tt>Alt-SysRq-<кнопка></tt>):
# echo s > /proc/sysrq-trigger
# echo u > /proc/sysrq-trigger
# echo b > /proc/sysrq-trigger


== polkit ==
== polkit ==
При использовании {{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>.
Однако есть возможность частично решить эту проблему. Необходимо для части операций изменить поведение {{pkg|polkit}} по умолчанию.
 
См. тж. [http://packages.altlinux.org/ru/Sisyphus/srpms/polkit-sysvinit {{pkg|polkit-sysvinit}}] или далее.
 
=== флэшки ===
 
Для связанных с монтированием устройств действий необходимо создать файл {{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) {
Строка 20: Строка 44:
});
});
</pre>
</pre>
В этом примере возвращается разрешения на действия "org.freedesktop.udisks2.filesystem-mount" и "org.freedesktop.udisks2.eject-media", если пользователь находится в группе "storage".
В этом примере возвращаются разрешения на действия "org.freedesktop.udisks2.filesystem-mount" и "org.freedesktop.udisks2.eject-media", если пользователь находится в группе "storage".


Если вы уверены, что такие меры безопасности на данной машине слишком суровы, то содержимое файла можно упростить до вседозволенности:
Если вы уверены, что такие меры безопасности на данной машине слишком суровы, то содержимое файла можно упростить до вседозволенности:
Строка 39: Строка 63:
</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>!)
 
Такая же ошибка будет, если в системе с sysvinit имеется пакет systemd-services. Его нужно удалить и
перезагрузиться.
 
= Разное =
* Q: <tt>Running in chroot, ignoring request.</tt><br/>A: [https://github.com/smaknsk/servicectl servicectl] есть в сизифе и бранчах, начиная с p7/t7
 
= Ссылки =
* https://www.opennet.ru/base/sys/systemd_myth.txt.html
* https://ewontfix.com/14/
 
= Примечания =
<references />
<references />


[[Категория:Admin]]
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}

Текущая версия от 18:21, 23 октября 2023

Использование SysVinit на p7+

Сборки

переход

На p10 по зависимостям пакета startup понадобится пакет systemd-utils-standalone:

# apt-get install sysvinit sysvinit-utils sysvinit-initramfs
# apt-get remove libnss-systemd pam_systemd systemd systemd-analyze systemd-boot-efi systemd-utils-standalone+

Может потребоваться перезагрузка запасным методом вместо штатного reboot (программный аналог комбинации Alt-SysRq-<кнопка>):

# echo s > /proc/sysrq-trigger 
# echo u > /proc/sysrq-trigger
# echo b > /proc/sysrq-trigger

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/ не работает