Автор Тема: Замена системы инициализации systemd на sysvinit  (Прочитано 11337 раз)

dango

  • Гость
Отчет 2
Исходные условия
Тестовый ПК: нетбук ASUS EeePC X101CH
Дистрибутив: Simply Linux 7.0.4 x86_64
Разметка диска: Автоматическая на весь диск
1.Подготовка
Установка дистрибутива
Настройка доступа к Интернет
В эмулятора терминала:
Вход под root
$ su -
Подключение источников обновления
# apt-repo rm all
# apt-repo add branch p7
Проверка источников обновления
# apt-repo
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch i586 classic
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch noarch classic
Полное обновление
# apt-get update
# apt-get dist-upgrade
# update-kernel
Перезагрузка
# reboot
Зарубки на память
Версия ядра после обновление и перезагрузки
$ uname -rm
3.14.36-std-def-alt1 i686
Вывод списка всех служб sysvinit, работатающих под systemd
$ chkconfig --list
bridge          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
consolesaver    0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
ethtool        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
lm_sensors      0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
openvpn        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
rawdevices      0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
syslogd        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
xinetd          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
xl2tpd          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
zram-swap      0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
Вывод списка всех сервисов systemd
$ systemctl --all
Примечание: данный выхлоп превысил ограничение знаков в сообщение, но в силу наглядности спектра служб systemd все же включен в пост вложением.

dango

  • Гость
Отчет 2 (продолжение)
2.Замена системы инициализации
$ su -
# apt-get install sysvinit
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
  systemd-sysvinit
Следующие НОВЫЕ пакеты будут установлены:
  sysvinit
0 будет обновлено, 1 новых установлено, 1 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 58,0kB архивов.
После распаковки потребуется дополнительно 96,2kB дискового пространства.
Продолжить? [Y/n]
Перезагрузка системы
# reboot
3.Проверка
После перезагрузки проверка наличия sysvinit в системе
$ rpm -qa sysvinit
sysvinit-2.88-alt4
И вывод всех сервисов, объявленных в sysvinit
$ chkconfig --list
NetworkManager 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
acpid          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
alteratord      0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
anacron        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
autofs          0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
avahi-daemon    0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
blk-availability 0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
bluetoothd      0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
bridge          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
consolesaver    0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
cpufreq-simple 0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
crond          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
cups            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
dm              0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:вкл 6:выкл
dnsmasq        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
ethtool        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
fbsetfont      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
iptables        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
kadmin          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
keytable        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
kprop          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
krb5kdc        0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
lm_sensors      0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
lvm2-lvmetad    0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
lvm2-monitor    0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
mdadm          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
messagebus      0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
multipathd      0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
netfs          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
network        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
nmb            0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
nscd            0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
ntpd            0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
openvpn        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
plymouth        0:выкл 1:вкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
random          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
rawdevices      0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
rpcbind        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
slapd          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
smartd          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
smb            0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
sshd            0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
syslogd        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
udevd          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
winbind        0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
x11presetdrv    0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
xinetd          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
xl2tpd          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
zram-swap      0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
Проверка наличия пакетов systemd в системе
$ rpm -qa *systemd*
libsystemd-journal-201-alt1.M70P.4
systemd-analyze-201-alt1.M70P.4
libsystemd-daemon-201-alt1.M70P.4
libsystemd-login-201-alt1.M70P.4
systemd-201-alt1.M70P.4
libsystemd-id128-201-alt1.M70P.4

dango

  • Гость
Отчет 2 (окончание)
4.Восстановление функциональности
Первый пользователь системы: user
Выключение/перезагрузка от пользователя
Описание проблемы:
При попытке выключить/перезагрузить систему пункт главного меню XFCE "Выйти" выводится окно с запросом пароля пользователя. При вводе пароля пользователя user выбранное действие выполняется.
Задача:
Убрать запрос пароля пользователя.
Решение:
Предупреждение: данное решение не работает на 100% и требует перепроверки и доработки.
Вход под root
$ su -
Проверка наличия в системе следующего файла
# cat /usr/share/polkit-1/rules.d/lightdm.rules
polkit.addRule(function(action, subject) {
    if (subject.user == "_ldm") {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);
        if (action.id.indexOf("org.freedesktop.login1.") == 0) {
            return polkit.Result.YES;
        }
        if (action.id.indexOf("org.freedesktop.consolekit.system.") == 0) {
            return polkit.Result.YES;
        }
        if (action.id.indexOf("org.freedesktop.upower.") == 0) {
            return polkit.Result.YES;
        }
    }
});
Копирование данного файла в /etc/polkit-1/rules.d
# cp /usr/share/polkit-1/rules.d/lightdm.rules /etc/polkit-1/rules.d/
Проверка наличие в системе группы _ldm
# cat /etc/group |grep _ldm
_ldm:x:466
Добавление пользователя user в группу _ldm
gpasswd -a user _ldm
Правило начинает действовать для пользователя после перезагрузки.
Примечание: тестирование выявило, что запрос пароля при выключении/перезагрузке в некоторых случаях все же происходит.
Автоматическое монтирование USB-накопителей
Описание проблемы:
При подключении USB-накопителя не происходит его автоматическое монтирование в системе. В Thunar устройство появляется, но при щелчке мышкой на нем выводится окно с сообщением "Не удалось подключить (метка накопителя). Not authorized to perform operation"
Задача:
Восстановить автоматическое монтирование USB-накопителей при их подключении.
Решение:
Источник: http://www.altlinux.org/Sysvinit#.D1.84.D0.BB.D1.8D.D1.88.D0.BA.D0.B8
Источник: https://wiki.archlinux.org/index.php/Udisks#Configuration
Вход под root
$ su -
Добавление новой системной группы storage
# groupadd -r storage
Добавление пользователя user в группу storage
# gpasswd -a user storage
Проверка групп пользователя user
# groups user
user : user wheel uucp proc cdrom floppy cdwriter audio radio scanner xgrp video camera sambashare vboxusers _ldm storage
Создание пустого файла для правила
# touch /etc/polkit-1/rules.d/60-mount.rules
Заполнить данный файл следущим содержимым
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" || action.id == "org.freedesktop.udisks2.power-off-drive" || action.id == "org.freedesktop.udisks2.encrypted-unlock" )  && subject.isInGroup("storage") )
    {
return polkit.Result.YES;
    }
});
Правило сразу начинает действовать для пользователя.
Это дополнение необязательно:
Восстановление классической точки монтирования USB-накопителей в /media
# control udisks2
default
# control udisks2 shared
# control udisks2
shared
Управление сетевыми соединениями в NetworkManager обычным пользователем
Описание проблемы:
Настроенное до замены системы инициализации сетевое соединение Wi-Fi по-прежнему работает. При щелчке левой кнопки мышки на значке NetworkManager выводится список беспроводных сетей вместе с рабочей.
Если в вызванном правой кнопкой мышки на значке NetworkManager меню выбрать "Изменить соединения...", то выводится окно "Сетевые соединения" без списка зарегистрированных соединений.
Если в списке беспроводных сетей щелкнуть мышкой на имени подключенной беспроводной сети или на нижерасположенной команде "Отключиться", то выводится окно "Не удалось создать/включить соединение (32) No session found for uid 500 (unknown)". Для обычного пользователя отсутствует возможность управлять сетевыми соединениями в NetworkManager.
Задача:
Восстановить для обычного пользователя возможность управлять сетевыми соединениями в NetworkManager.
Решение:
Источник: http://www.altlinux.org/Sysvinit#NetworkManager
Вход под root
$ su -
[/code]
Добавление новой системной группы _nmconnect
# groupadd -r _nmconnect
Добавление пользователя user в группу _nmconnect
# gpasswd -a user _nmconnect
Проверка групп пользователя user
# groups user
user : user wheel uucp proc cdrom floppy cdwriter audio radio scanner xgrp video camera sambashare vboxusers _ldm storage _nmconnect
Создание пустого файла для правила
# touch /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;
    }
});
Правило сразу начинает действовать для пользователя.
Примечание: в /etc/polkit-1/rules.d есть файл 70-SL-NM-allow-modify-system.rules
# cat /etc/polkit-1/rules.d/70-SL-NM-allow-modify-system.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
};
});
Признаков, что это правило работает, не обнаружил и удалил этот файл
Работа PulseAudio
Оно работает.
« Последнее редактирование: 09.04.2015 08:11:20 от dango »

dango

  • Гость
Утром сюрприз поставил под сомнение стабильность решения выключения/перезагрузки от пользователя. Пришлось внести предупреждение в отчет.
Именно оно отняло больше времени и все равно не решено. И внешнее проявления очень похоже на поведение sudo.
В принципе можно попробовать прописать в /etc/sudoers.d/ файл с
group localhost= NOPASSWD: /usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot
А можно еще попробовать sysvinit-usermode.
Примечание: Много интересного узнал здесь
http://lists.altlinux.org/pipermail/sisyphus/2013-April/360343.html
Прошу прощения, что выкладываю ссылку на данную переписку без согласия сторон.

Оффлайн gvy

  • alt linux team
  • ***
  • Сообщений: 1 008
    • Альт на Эльбрусе
    • Email
Прошу прощения, что выкладываю ссылку на данную переписку без согласия сторон.
Эээ... ссылка-то публичная, какие могут быть у сторон претензии? :-)
--
Michael Shigorin | ALT Linux Team | ANNA-News | Сделано у нас | altlinux.org/эльбрус

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
В mkimage-profiles 1.1.63 появилась цель regular-xfce-sysv.iso; пробная сборка сейчас есть здесь.

Также см. приложенный srpm, слепленный по мотивам [[sysvinit]] -- подумываю отправить в сизиф, т.к. уже раз понадобился.

Миш, пробная пустая, там нет рулезов.
Честно говоря, мне было лень перегружаться из пробной которая на p7, да и нетерплячка мучала, поэтому сделал по-топорному на скорую руку:
- развернул пакет srpms через rpm2cpio и руками воткнул рулезы
# ls -l /etc/polkit-1/rules.d/|grep 60
-rw-r--r-- 1 root root 508 апр 10 05:57 60-sysvinit-mount.rules
-rw-r--r-- 1 root root 194 апр 10 05:57 60-sysvinit-nm.rules

Да, посмотрел, что пользователь должен быть в группе xgrp:
# cat /etc/polkit-1/rules.d/60*|grep xgrp
    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("xgrp")   )
    if (action.id == "org.freedesktop.udisks2.eject-media"  && subject.isInGroup("xgrp") )
Всё монтируется, отмонтируется, извлекается.

Но не работало отправление лайва в ждущий.
После серии установок, ждущий заработал сразу в лайве xfce работающим через usb-порт:
# cp /usr/share/polkit-1/actions/org.xfce.power.policy /etc/polkit-1/actions/
# cp /usr/share/polkit-1/actions/org.freedesktop.upower.policy /etc/polkit-1/actions/
# apt-get install pm-utils
Условие полиси:
неактивным запрещено, активным разрешено.

Просьба к желающим поддержать sysvinit  на десктопах:
проверить, - может что-то не досмотрел, не увидел, пропустил...

Дополнительно вопрос:
возможно ли добавить в сборку пакеты
bc fonts-ttf-djvu mpg123

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

dango

  • Гость
Кратко проблеме по выключению/перезагрузке от пользователя:
sysvinit-usermode не помог.
вариации правил polkit тоже.
Но истина где-то рядом!
Upd. Speccyfighter, спасибо за подсказку.
« Последнее редактирование: 10.04.2015 09:20:59 от dango »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Upd. Speccyfighter, спасибо за подсказку.

dango, подожди, ещё не всё:

Добавляю пользователя tester.
Не так чтобы у него не работало, а даже кнопок Ждущий Спящий нет.
Добавляю tester в %wheel - без разницы. И не могу понять, почему я altlinux могу, а tester нет?
И тут до меня ме-е-дленно начало доходить:
pm-suspend выполняется с правами root.
Но пароль xfce не спрашивает.
Стоп, а посмотри-ка, нет ли в лайве sudoers?
Смотрю, оп-пачки, мама моя родная, а там же в этом sudoers:
altlinux ALL=(ALL) ALL

Оказывается xfce через полиси polkit беспарольно выполняет ждущий.
Меняю altlinux на %wheel, tester же уже в wheel,
%wheel ALL=(ALL) ALL
и оп-пачки - даже перелогиниваться не пришлось - у tester кнопки Перегрузить и Выключить стали активными, а Ждущий, Спящий появились, и Ждущий беспарольно отрабатывается!

Но що-то мне этот sudoers с wheel не особо понравился вместе с этим ALL=(ALL) ALL
Не, ну оно-то можно заменить этот ALL на перечисление команд чтобы огранить в правах только ребутом, выключением, ждущим/спящим, но как-то стрёмно это...

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Ладно, а давай посмотрим как объехал этот момент enp...

Ага, вот как он объехал выключение/спячку, - жестким ограничением, - helper через беспарольный sudo.
Т.е. у пользователя как бы sudo есть, и как бы его нет, - только на helper:
# mount /dev/sdd /mnt/disk
# mount /mnt/disk/live /mnt/disk2/ -o loop
# cat /mnt/disk2/etc/sudoers|tail -n 1
ALL ALL=(ALL) NOPASSWD: /usr/lib/xfce4/session/xfsm-shutdown-helper
# ls -lR /mnt/disk2/etc/polkit-1/
/mnt/disk2/etc/polkit-1/:
итого 0
drwx------ 2 openvpn root 63 сен 29  2014 rules.d

/mnt/disk2/etc/polkit-1/rules.d:
итого 1
-rw-r--r-- 1 root root 326 июн  6  2013 50-default.rules
-rw-r--r-- 1 root root  77 сен 29  2014 99-altlive.rules
# cat /mnt/disk2/etc/polkit-1/rules.d/99-altlive.rules
polkit.addRule(function(action, subject) {
    return polkit.Result.YES;
});
# chroot /mnt/disk2/
# rpm -qa|grep -i sysv
sysvinit-2.88-alt4
sysvinit-utils-2.88-alt4
# rpm -qa|grep -i power
upower-0.9.20-alt2
acpid-events-power-2.0.17-alt1
libupower-0.9.20-alt2
# rpm -qa|grep -i ^pm
pm-utils-1.4.1-alt2.qa1
pmount-0.9.23-alt2

dango

  • Гость
Ага!
ALL ALL=(ALL) NOPASSWD: /usr/lib/xfce4/session/xfsm-shutdown-helper
Вот это пробегало в рецептах в Сети. Отложил на крайний случай.
polkit.addRule(function(action, subject) {
    return polkit.Result.YES;
});
Еще мощнее кувалда, чем это
/etc/polkit-1/rules.d/49-nopasswd_global.rules

/* Allow members of the wheel group to execute any actions
without password authentication, similar to sudo NOPASSWD: */
polkit.addRule(function(action, subject) {
    if (subject.isInGroup("wheel"))   {
            return polkit.Result.YES;
    }
});
А хочется решить грамотно через корректные правила PolicyKit, не ломая политики последнего. Короче, надо заново освежиться документацией, прочувствовать ваши подсказки... "Пилите, Шура, пилите!" (С)

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Предлагаю для решения проблемы с учеткой сравнить что используется в стартере на tde с sysvinit.
возможно я чет не догнал но вроде там было так:
в /etc/polkit-1/rules.d/50-default.rules

polkit.addRule(function(action, subject) {
    return ["unix-group:wheel"];
});

Сейчас система стоит на виртуалке. Если потребуется вывод отсюда (стартера) то спрашивайте - скину.

dango

  • Гость
в /etc/polkit-1/rules.d/50-default.rules

polkit.addRule(function(action, subject) {
    return ["unix-group:wheel"];
});
stanukih, спасибо за желание помочь. Но в Simply Linux данное правило есть по умолчанию
# cat /etc/polkit-1/rules.d/50-default.rules
/* -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- */

// DO NOT EDIT THIS FILE, it will be overwritten on update
//
// Default rules for polkit
//
// See the polkit(8) man page for more information
// about configuring polkit.

polkit.addAdminRule(function(action, subject) {
    return ["unix-group:wheel"];
});

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Предлагаю для решения проблемы с учеткой сравнить что используется в стартере на tde с sysvinit.

Погружаться в TDE в текущий момент нет смысла, по нескольким причинам:

1. Сборка хорошо работает на sysv и hald всё ещё в сизифе.
2. В R14 уже нет hald
3. И самое важное:
- haldaemon в TDE, это центральный узел системы: на нём всё так глубоко и много завязано...
Немудрено, что новому TDE уже два года и он всё ещё не в релизе.
hald в TDE это далеко не только монтирование флешек в TDE. Остановив сервис, можно лишиться половины функционала TDE (см. скриншот на отмонтировании файловой при остановленном haldaemon)
И ищем модель org.freedesktop.Hal (см. текстовые вложения, - там же можно поискать модель power)

Скриншот:
фишка не в том, чтобы что-сделать правильно, а в том, чтобы что-то сделать неправильно, чтобы система ругнулась чем-то.
Вот это "чем-то" и использовано как модель для поиска, с результатом текстовых вложений.
« Последнее редактирование: 11.04.2015 08:35:03 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Ага!
ALL ALL=(ALL) NOPASSWD: /usr/lib/xfce4/session/xfsm-shutdown-helper
А хочется решить грамотно ...

Похоже что грамотно в xfce никак, - для sysv в альтах он окончательно разломан вдребезги, хотя CK до сих пор в сизифе и его уже третий год в альтах хоронят, - где-то года с 2012-го:
http://lists.altlinux.org/pipermail/sisyphus/2013-April/360373.html
Цитировать
> А как насчет вычистить сейчас ConsoleKit из XFCE, раз в нынешнем
> Сизифе он бесполезен?

Он был вполне полезен, reboot/shutdown через него работал и с systemd,
и без него. Но в следующей сборке он уже не будет использоваться.
И вот здесь разломали xfsm-shutdown-helper непривилегированным.

Про NetworkManager:
http://lists.altlinux.org/pipermail/sisyphus/2012-May/357589.html
http://lists.altlinux.org/pipermail/sisyphus/2013-March/359905.html

На самом деле это выборочно из десятка-полтора вкладок.
Для xfce с sysv складывается без вариантов:
- все в wheel
- все в беспарольном sudo для xfsm-shutdown-helper - иначе как минимум спячки не будет


Для NetworkManager аналогично, но с вариантами:
- всем всё
- всем кто в группе ххх всё
- если реализовывать дефолты через рулезы
(для всего и везде замучаешься писать рулезы)

# grep 'allow_active\|action id' /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
  <action id="org.freedesktop.NetworkManager.enable-disable-network">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.sleep-wake">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.enable-disable-wifi">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.enable-disable-wwan">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.enable-disable-wimax">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.network-control">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.wifi.share.protected">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.wifi.share.open">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.settings.modify.own">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.NetworkManager.settings.modify.system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.NetworkManager.settings.modify.hostname">
      <allow_active>auth_admin_keep</allow_active>

# grep 'allow_active\|action id' /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy
  <action id="org.freedesktop.consolekit.system.stop">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.consolekit.system.restart">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
      <allow_active>auth_admin_keep</allow_active>
# rpm -qf /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy ConsoleKit-0.4.5-alt1

# grep 'allow_active\|action id' /usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
  <action id="org.freedesktop.udisks2.filesystem-mount">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.filesystem-mount-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.filesystem-mount-other-seat">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.filesystem-fstab">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.filesystem-unmount-others">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.encrypted-unlock">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.encrypted-unlock-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.encrypted-unlock-other-seat">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.encrypted-unlock-crypttab">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.encrypted-lock-others">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.encrypted-change-passphrase">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.encrypted-change-passphrase-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.loop-setup">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.loop-delete-others">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.loop-modify-others">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.manage-swapspace">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.manage-md-raid">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.power-off-drive">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.power-off-drive-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.power-off-drive-other-seat">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.eject-media">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.eject-media-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.eject-media-other-seat">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.modify-device">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.modify-device-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.modify-device-other-seat">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.rescan">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.open-device">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.open-device-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.modify-system-configuration">
      <allow_active>auth_admin</allow_active>
  <action id="org.freedesktop.udisks2.read-system-configuration-secrets">
      <allow_active>auth_admin</allow_active>
  <action id="org.freedesktop.udisks2.modify-drive-settings">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.ata-smart-update">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.ata-smart-simulate">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.ata-smart-selftest">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.ata-smart-enable-disable">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.ata-check-power">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.ata-standby">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.ata-standby-system">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.ata-standby-other-seat">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.ata-secure-erase">
      <allow_active>auth_admin_keep</allow_active>
  <action id="org.freedesktop.udisks2.cancel-job">
      <allow_active>yes</allow_active>
  <action id="org.freedesktop.udisks2.cancel-job-other-user">
      <allow_active>auth_admin_keep</allow_active>
# rpm -qf /usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
udisks2-2.1.1-alt1

И это далеко не всё если организовывать как правильный дефолт
# ls -1 /usr/share/polkit-1/actions/
org.freedesktop.color.policy
org.freedesktop.consolekit.policy
org.freedesktop.hostname1.policy
org.freedesktop.locale1.policy
org.freedesktop.login1.policy
org.freedesktop.ModemManager1.policy
org.freedesktop.NetworkManager.policy
org.freedesktop.policykit.policy
org.freedesktop.systemd1.policy
org.freedesktop.timedate1.policy
org.freedesktop.udisks2.policy
org.freedesktop.upower.policy
org.freedesktop.upower.qos.policy
org.gnome.gconf.defaults.policy
org.xfce.power.policy
(сразу подробно и больше через pkaction)

при существующем но сломанном в sysv
$ ck-list-sessions | grep active
active = TRUE

из-за которого в NM на sysv всё дефолтом запрещено (там выше для NM <allow_active>):
$ nmcli nm permissions
РАЗРЕШЕНИЕ                                                ЗНАЧЕНИЕ 
org.freedesktop.NetworkManager.enable-disable-network     нет       
org.freedesktop.NetworkManager.enable-disable-wifi        нет       
org.freedesktop.NetworkManager.enable-disable-wwan        нет       
org.freedesktop.NetworkManager.enable-disable-wimax       нет       
org.freedesktop.NetworkManager.sleep-wake                 нет       
org.freedesktop.NetworkManager.network-control            нет       
org.freedesktop.NetworkManager.wifi.share.protected       нет       
org.freedesktop.NetworkManager.wifi.share.open            нет       
org.freedesktop.NetworkManager.settings.modify.system     нет       
org.freedesktop.NetworkManager.settings.modify.own        нет       
org.freedesktop.NetworkManager.settings.modify.hostname   нет       

Причём проверять монтирование в thunar нужно исключительно через thunar:
$ udisksctl mount -b /dev/sda2
==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount-system ===
Для подключения SAMSUNG HM160HC (/dev/sda2) требуется подтверждение подлинности пользователя
Authenticating as: user
==== AUTHENTICATION COMPLETE ===
Mounted /dev/sda2 at /media/7109a97f-5524-4e23-8b08-b530958e48151.
$ udisksctl unmount -b /dev/sda2
Unmounted /dev/sda2.
действительно ли для чего-то Х-совая сессия TRUE
или вылезет
Цитировать
Not authorized to perform operation.

Завязанное на polkit раскрутить ни через что кроме рулезов нельзя, - не позволяет системная архитектура:
man polkit|less -p 'SYSTEM ARCHITECTURE'

dango

  • Гость
Похоже что грамотно в xfce никак, - для sysv в альтах он окончательно разломан вдребезги, хотя CK до сих пор в сизифе и его уже третий год в альтах хоронят, - где-то года с 2012-го:
Читал всю ветку неоднократно. Из-за понимания своего непонимания целого ряда тонкостей, отложил мысли на дозревание. Может, повторить эксперимент уже над SL 7.0.5?