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

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Отчёт по дистрибутиву regular-xfce-sysv-20150616-i586.iso (лайв, un-def ядро)
(все выбросы из загруженной лайв-системы)

Как и обещал, июньские регулярки xfce-sysv от gvy с недоступного теперь уже fly.osdn.org.ua
Ссылка на каталог с образами
Образы лежат в каталоге по пути:
iso > mike > sysv

Образ от 20150616 - ядро
# ls /mnt/disk2/lib/modules/
4.0.5-un-def-alt1

Образ от 20150617 - ядро
# ls /mnt/disk2/lib/modules/
3.14.44-std-def-alt1


Ядро:
$ uname -r
4.0.5-un-def-alt1
$ whoami
altlinux
$ groups
altlinux wheel uucp proc cdwriter audio radio users fuse netadmin xgrp scanner
$ su -
# sed -i 's/^altli/#altli/' /etc/sudoers
# tail -n 3 /etc/sudoers
#root ALL=(ALL) ALL

#altlinux ALL=(ALL) ALL

Перелогин в X-сессию.
Кнопки спячки, перезагрузки и выключения не затенены.

Настройка wifi через alterator:
$ ping -c1 forum.altlinux.org
PING forum.altlinux.org (194.107.17.160) 56(84) bytes of data.
64 bytes from forum.altlinux.org (194.107.17.160): icmp_req=1 ttl=54 time=66.2 ms

--- forum.altlinux.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 66.290/66.290/66.290/0.000 ms

Текущие рулезы:
# ll /etc/polkit-1/rules.d/
итого 2
drwx------ 2 polkitd root 135 июн 16 12:42 ./
-rw-r--r-- 1 root    root 508 июн 16 12:40 60-sysvinit-mount.rules
-rw-r--r-- 1 root    root 194 июн 16 12:40 60-sysvinit-nm.rules
-rw-r--r-- 1 root    root 185 июн 16 12:40 60-xfsm-shutdown-helper.rules
drwxr-xr-x 3 root    root  30 июн  9 08:24 ../
-rw-r--r-- 1 root    root 326 сен 18  2013 50-default.rules

Вставил дополнительно рулез:
# touch /etc/polkit-1/rules.d/60-backlight-helper.rules
# mcedit /etc/polkit-1/rules.d/60-backlight-helper.rules

# cat /etc/polkit-1/rules.d/60-backlight-helper.rules
polkit.addRule(function(action, subject) {
    if (action.id == "org.xfce.power.backlight-helper" && subject.isInGroup("xgrp") )
    {
        return polkit.Result.YES;
    }
});
Регулировка яркости дисплея ноутбука NX6110 от хоткеев не работает.

Текущий рулез монтирования:
# apt-cache search polkit|grep sysv
polkit-sysvinit - Allow media/network changes to xgrp users
# rpm -ql polkit-sysvinit
/etc/polkit-1/rules.d/60-sysvinit-mount.rules
/etc/polkit-1/rules.d/60-sysvinit-nm.rules
/etc/polkit-1/rules.d/60-xfsm-shutdown-helper.rules
# cat /etc/polkit-1/rules.d/60-sysvinit-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("xgrp")   )
    {
return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.eject-media"  && subject.isInGroup("xgrp") )
    {
return polkit.Result.YES;
    }
});

Монтирование файловых HDD через thunar работает.
Монтирование файловых usb-flash через thunar не работает.

Обновляем пакет polkit-sysvinit:
# apt-repo
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus i586 classic
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch classic
# apt-get update
# apt-get reinstall polkit-sysvinit

Текущий рулез монтирования:
# cat /etc/polkit-1/rules.d/60-sysvinit-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("xgrp")   )
    {
return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.eject-media"  && subject.isInGroup("xgrp") )
    {
return polkit.Result.YES;
    }
});

Переподключаем флешку.
Монтирование файловых usb-flash через thunar не работает.
Монтирование файловых usb-flash работает только из шелл:
$ udisksctl mount -b /dev/sdc2
==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount-other-seat ===
Для монтирования TOSHIBA TransMemory (/dev/sdc2) требуется подтверждение подлинности пользователя
Authenticating as: altlinux
==== AUTHENTICATION COMPLETE ===
Mounted /dev/sdc2 at /run/media/altlinux/alt-live-storage.
$ udisksctl unmount -b /dev/sdc2
Unmounted /dev/sdc2.

Подвигаем в сторону пакетный рулез монтирования
# mv /etc/polkit-1/rules.d/60-sysvinit-mount.rules /root

и берём свой рулез из системы на sysv с xfce/t7
# cat /etc/polkit-1/rules.d/60-sysvinit-mount-lastwork.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("xgrp")   )
    {
    return polkit.Result.YES;
    }
});


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-other-seat" ) && subject.isInGroup("xgrp")   )
    {
    return polkit.Result.YES;
    }
});


polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.eject-media-other-seat" && subject.isInGroup("xgrp") )
    {
    return polkit.Result.YES;
    }
});

Переподключаем флешку.
Монтирование файловых HDD и usb-flash через thunar работает - флешка и отключается и извлекается:
# mount|grep 'sda1\|sdc'
/dev/sdc2 on /run/media/altlinux/alt-live-storage type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)
/dev/sda1 on /run/media/altlinux/9327ce2b-1aea-4270-b827-e528e69aae0b type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

При добавлении в группу xgrp вновь созданного пользователя tester, опции выключения и засыпания не затенены блокировкой, а файловые системы HDD и флешек монтируются, отмонтируются и извлекаются:
# usermod -a -G xgrp tester
$ mount|grep 'sda1\|sdc'
/dev/sda1 on /run/media/tester/9327ce2b-1aea-4270-b827-e528e69aae0b type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)
/dev/sdc2 on /run/media/tester/alt-live-storage type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)



Резюме:
- Требуется багрепорт на рулез 60-sysvinit-mount.rules сизифного пакета polkit-sysvinit с заменой на содержимое рулеза 60-sysvinit-mount-lastwork.rules (листинг выше).
- Требуется багрепорт на образ regular-xfce-sysv-20150616-i586.iso (какой, где в багтрекере?) : или закомментировать sudo для altlinux, или обнулить timestamp, или уменьшить до минуты:
# grep -i timestamp /там/etc/sudoers
# Timestamp limit
#Defaults:WHEEL_USERS timestamp_timeout = 0


По дистрибутиву (ссылка на образ двумя сообщениями выше)
regular-xfce-sysv-20150616-i586.iso (лайв, std-def ядро)

с ядром
$ uname -r
3.14.44-std-def-alt1

всё совершенно аналогично вышесказанному, за исключением того, что регулировка яркости дисплея ноутбука HP Compaq NX6110 на ядре std-def работает из коробки (на un-def не работает и остаётся под вопросом).
« Последнее редактирование: 16.11.2015 02:58:56 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Пересекающееся:

Заметки по медиаплееру parole (очень важно!!!):
https://forum.altlinux.org/index.php?topic=35778.msg270072#msg270072

Входит в состав дистрибутивов сборки  gvy упомянутых с линками тут (или/или):
https://forum.altlinux.org/index.php?topic=35681.msg269992#msg269992
https://forum.altlinux.org/index.php?topic=34428.msg269991#msg269991

Подробности по доведению дистрибутивов, или системы установленной с них, до ума - сообщение выше:
https://forum.altlinux.org/index.php?topic=34428.msg270000#msg270000


Грустно вздохнул...   :
- В попытке разгрести все мелкие косяки дистрибутивов regular-xfce-sysv (не связанные с инициализацией) и найти способы их ликвидации с тестами тестами тестами, вторые сутки не могу найти время отправить багрепорт на сизифный пакет polkit-sysvinit. Да и в рассылку написать, - а как бы примарафетить regular-xfce-sysv*, включив как доведённое, в состав регулярок как будущих стартеркитов.
xfce-sysv основанный на сизифе вырисовывается просто замечательным.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Зарегистрирован баг-репорт на рулез 60-sysvinit-mount-rules пакета polkit-sysvinit :
Ошибка 31501 - Извлекаемые накопители в системах на sysv - отказ в авторизации
Предложенное решение там же. Полностью аналогично здесь же в теме.
При замене решает проблему монтирования извлекаемых накопителей в системе с xfce на sysv (и в остальных на sysv?)

Оффлайн gvy

  • alt linux team
  • ***
  • Сообщений: 1 008
    • Альт на Эльбрусе
    • Email
Как и обещал, июньские регулярки xfce-sysv от gvy с недоступного теперь уже fly.osdn.org.ua
Ссылка на каталог с образами
Образы лежат в каталоге по пути iso > mike > sysv
http://altlinux.org/sysvinit
http://nightly.altlinux.org/p7/beta/
:-)

PS:

В попытке разгрести все мелкие косяки дистрибутивов regular-xfce-sysv [...] xfce-sysv основанный на сизифе вырисовывается просто замечательным.
Давай разгребём в p7/beta да sisyphus/alpha -- и пусть будет.
« Последнее редактирование: 17.11.2015 13:43:11 от gvy »
--
Michael Shigorin | ALT Linux Team | ANNA-News | Сделано у нас | altlinux.org/эльбрус

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Как и обещал, июньские регулярки xfce-sysv от gvy с недоступного теперь уже fly.osdn.org.ua
Ссылка на каталог с образами
Образы лежат в каталоге по пути iso > mike > sysv
http://altlinux.org/sysvinit
http://nightly.altlinux.org/p7/beta/
:-)

Спасибо! :-)

PS:
В попытке разгрести все мелкие косяки дистрибутивов regular-xfce-sysv [...] xfce-sysv основанный на сизифе вырисовывается просто замечательным.
Давай разгребём в p7/beta да sisyphus/alpha -- и пусть будет.

Угу.
Сейчас смотрю грубыми прикидками из лайва июньской регулярки sysv, почему может не заработать спячка-выключение в altlinux-p7-xfce-sysv-20150918-i586.iso через рулез полкита.
Разницу, и возможно ли заставить это работать избавив пользователей от обязательного беспарольного sudoers на shutdown-helper.
Ещё не загрузил iso.
Но надо смотреть на живой системе. Чтобы реально видеть сработало или нет. Выбросы потихоньку сбрасываю в файлик чтобы не потерять ход мысли. Как только сформируется в голове конструкция, выброшу все мысли с выбросами здесь же в теме.
Ну или грубыми прикидками сегодня, но чуть позже.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259

Грубые прикидки сравнением altlinux-p7-xfce-sysv-20150918-i586.iso и regular-xfce-sysv-20150616-i586.iso


Угу-у, в сизифном нужный action есть:
# grep -rHi helper /usr/share/polkit-1/actions/|grep shutd|grep 'action '
/usr/share/polkit-1/actions/org.xfce.session.policy:  <action id="org.xfce.session.xfsm-shutdown-helper">

И он относится к пакету:
# rpm -qf /usr/share/polkit-1/actions/org.xfce.session.policy
xfce4-session-4.12.1-alt1

Монтируем fs xfce-sysv-t7
# udisksctl mount -b /dev/sda1
Mounted /dev/sda1 at /run/media/root/9327ce2b-1aea-4270-b827-e528e69aae0b.

Чрутимся в систему на xfce-sysv-t7
# chroot /run/media/root/9327ce2b-1aea-4270-b827-e528e69aae0b

В xfce4-session-4.10 нет соответствующего action для xfsm-shutdown-helper (а если его подсунуть руками?)
# grep -rHi helper /usr/share/polkit-1/actions/|grep shutd|grep 'action '
#
# rpm -ql xfce4-session|grep helper
/usr/lib/xfce4/session/xfsm-shutdown-helper
# rpm -ql xfce4-session|grep policy
#

Разчрутиваемся из fs xfce-sysv-t7 и возвращаемся в fs regular-xfce-sysv:
# exit

Листинг полиси regular-xfce-sysv для xfsm-shutdown-helper
# cat /usr/share/polkit-1/actions/org.xfce.session.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>

 

  <vendor>XFCE Session Manager</vendor>
  <vendor_url>http://xfce.org/</vendor_url>
  <icon_name>xfce4-session</icon_name>


  <action id="org.xfce.session.xfsm-shutdown-helper">
   
    <description>Shutdown, restart, suspend, or hibernate the system</description>
    <message>Authentication is required to shutdown, restart, suspend, or hibernate the system.</message>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/lib/xfce4/session/xfsm-shutdown-helper</annotate>
  </action>

</policyconfig>

# ll /usr/share/polkit-1/actions/org.xfce.session.policy
-rw-r--r-- 1 root root 895 мар 16  2015 /usr/share/polkit-1/actions/org.xfce.session.policy

из пакета:
# rpm -q xfce4-session
xfce4-session-4.12.1-alt1
# rpm -ql xfce4-session|grep policy
/usr/share/polkit-1/actions/org.xfce.session.policy
# rpm -ql xfce4-session|grep helper
/usr/lib/xfce4/session/xfsm-shutdown-helper

Ага-а... Значит жёсткой привязки нет - это хорошо:
# grep -rHi 'org.xfce.session.policy' /usr/
#

Теперь посмотрим на разницу в наполнении actions
для xfce 4.12
# ls -1F /usr/share/polkit-1/actions/|grep 'org.x'
org.xfce.power.policy
org.xfce.session.policy
org.xfce.thunar.policy
org.x.xf86-video-intel.backlight-helper.policy

и для xfce 4.10
# udisksctl mount -b /dev/sda1
Mounted /dev/sda1 at /run/media/root/9327ce2b-1aea-4270-b827-e528e69aae0b.
# chroot /run/media/root/9327ce2b-1aea-4270-b827-e528e69aae0b
# ls -1F /usr/share/polkit-1/actions/|grep 'org.x'
org.xfce.power.policy
# rpm -qf /usr/share/polkit-1/actions/org.x*
xfce4-power-manager-1.4.4-alt1
xfce4-session-4.12.1-alt1
thunar-1.6.10-alt1
xorg-drv-intel-2.99.916-alt3


Есть шанс подсунуть этот action в сборку на p7 чтобы заработал рулез xfsm-shutdown-helper.rules
И посмотреть.
Монтирование же флешек через свой рулез и так работает хорошо и в t7 и в сизифном.



actions xfce v4.12 включая отсутствующие в xfce 4.10
# cat /usr/share/polkit-1/actions/org.xfce.<Tab><Tab>
org.xfce.power.policy    org.xfce.session.policy  org.xfce.thunar.policy   
# cat /usr/share/polkit-1/actions/org.xfce.power.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>

 

  <vendor>XFCE Power Manager</vendor>
  <vendor_url>http://goodies.xfce.org/projects/applications/xfce4-power-manager</vendor_url>
  <icon_name>battery</icon_name>

  <action id="org.xfce.power.backlight-helper">
   
    <description>Modify the laptop display brightness</description>
    <message>Authentication is required to modify the laptop display brightness</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/xfpm-power-backlight-helper</annotate>
  </action>

  <action id="org.xfce.power.xfce4-pm-helper">
   
    <description>Suspend or hibernate the system</description>
    <message>Authentication is required to place the system in suspend or hibernate mode</message>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/xfce4-pm-helper</annotate>
  </action>

</policyconfig>

# cat /usr/share/polkit-1/actions/org.xfce.session.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>

 

  <vendor>XFCE Session Manager</vendor>
  <vendor_url>http://xfce.org/</vendor_url>
  <icon_name>xfce4-session</icon_name>


  <action id="org.xfce.session.xfsm-shutdown-helper">
   
    <description>Shutdown, restart, suspend, or hibernate the system</description>
    <message>Authentication is required to shutdown, restart, suspend, or hibernate the system.</message>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/lib/xfce4/session/xfsm-shutdown-helper</annotate>
  </action>

</policyconfig>

# cat /usr/share/polkit-1/actions/org.xfce.thunar.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

 

 <vendor>Thunar</vendor>
 <vendor_url>http://xfce.org/</vendor_url>
 <icon_name>system-file-manager</icon_name>


 <action id="org.xfce.thunar">
 
 <description>Run Thunar as root</description>
 <description xml:lang="ar">شغل ثونار كجذر</description>
 <description xml:lang="ast">Executar Thunar como root</description>
 <description xml:lang="bg">Стартирай Thunar като администратор</description>
 <description xml:lang="cs">Spustit Thunar jako root</description>
 <description xml:lang="da">Kør Thunar med rodrettigheder</description>
 <description xml:lang="de">Thunar als Systemverwalter starten</description>
 <description xml:lang="el">Εκτέλεση Thunar ως διαχειριστής</description>
 <description xml:lang="en_AU">Run Thunar as root</description>
 <description xml:lang="es">Iniciar Thunar como superusuario</description>
 <description xml:lang="fi">Käynnistä Thunar pääkäyttäjän oikeuksin.</description>
 <description xml:lang="fr">Lancer Thunar en tant que root</description>
 <description xml:lang="gl">Executar Thunar como administrador</description>
 <description xml:lang="he">הרץ את Thunar בתור שורש</description>
 <description xml:lang="hr">Pokreni Thunar kao root korisnik</description>
 <description xml:lang="hu">Thunar futtatása rendszergazdaként</description>
 <description xml:lang="is">Keyra Thunar sem kerfisstjóri (root)</description>
 <description xml:lang="it">Esegui Thunar come amministratore</description>
 <description xml:lang="ja">root で Thunar を起動</description>
 <description xml:lang="kk">Thunar-ды әкімші ретінде орындау</description>
 <description xml:lang="ko">Root 권한으로 Thunar 작동</description>
 <description xml:lang="lt">Vykdyti Thunar administratoriaus teisėmis</description>
 <description xml:lang="ms">Jalankan Thunar sebagai root</description>
 <description xml:lang="nb">Kjør Thunar som root</description>
 <description xml:lang="nl">Thunar draaien met rootbevoegdheid</description>
 <description xml:lang="pl">Uruchom Thunar jako root</description>
 <description xml:lang="pt">Executar Thunar como root</description>
 <description xml:lang="pt_BR">Rodar Thunar como superusuário</description>
 <description xml:lang="ro">Pornește Thunar ca root</description>
 <description xml:lang="ru">Запустить Thunar от суперпользователя</description>
 <description xml:lang="sk">Spustiť Thunar ako root</description>
 <description xml:lang="sr">Покрени Тунара са кореним овлашћењима</description>
 <description xml:lang="th">เรียกทำงาน Thunar ในฐานะ root</description>
 <description xml:lang="tr">Thunar'ı root olarak çalıştır</description>
 <description xml:lang="uk">Запустити Thunar з правами суперкористувача</description>
 <description xml:lang="zh_CN">以 root 身份运行 Thunar</description>
 <description xml:lang="zh_TW">以 root 身份執行 Thunar</description>
 <message>Authentication is required to run Thunar as root.</message>
 <message xml:lang="ast">Ríquese l'autenticación pa executar Thunar como root.</message>
 <message xml:lang="bg">Изисква се удостоверяване за да стартирате Thunar като администратор</message>
 <message xml:lang="cs">Pro spuštění aplikace Thunar jako root se vyžaduje autentizace.</message>
 <message xml:lang="da">Der kræves godkendelse for at køre Thunar som root.</message>
 <message xml:lang="de">Legitimierung wird benötigt, um Thunar als Systemverwalter zu starten.</message>
 <message xml:lang="el">Απαιτείται πιστοποίηση για εκτέλεση του Thunar ως διαχειριστής.</message>
 <message xml:lang="en_AU">Authentication is required to run Thunar as root.</message>
 <message xml:lang="es">Es necesario autentificarse para iniciar Thunar como superusuario.</message>
 <message xml:lang="fi">Jotta Thunar voidaan käynnistää pääkäyttäjän oikeuksin, todennus tarvitaan.</message>
 <message xml:lang="fr">Une authentification est requise pour lancer Thunar en tant que root.</message>
 <message xml:lang="gl">Requírese autenticación para executar Thunar como administrador</message>
 <message xml:lang="he">נדרש אימות כדי להריץ את Thunar בתור שורש.</message>
 <message xml:lang="hr">Potrebna je provjera za pokretanje Thunara kao root.</message>
 <message xml:lang="hu">A Thunar rendszergazdai futtatásához hitelesítés szükséges.</message>
 <message xml:lang="is">Auðkenningar er krafist til að keyra Thunar sem kerfisstjóri (root)</message>
 <message xml:lang="it">Per eseguire Thunar come amministratore è richiesta l'autenticazione</message>
 <message xml:lang="ja">root で Thunar を起動するには認証が必要です。</message>
 <message xml:lang="kk">Thunar-ды әкімші ретінде орындау үшін аутентификация керек.</message>
 <message xml:lang="ko">Root 권한으로 Thunar를 작동하려면 인증이 필요합니다.</message>
 <message xml:lang="lt">Thunar vykdymui administratoriaus teisėmis, reikalingas tapatybės nustatymas.</message>
 <message xml:lang="ms">Pengesahihan diperlukan untuk jalankan Thunar sebagai root.</message>
 <message xml:lang="nb">Identitetsbekreftelse kreves for å kjøre Thunar som root.</message>
 <message xml:lang="nl">Authenticatie is vereist om Thunar met rootbevoegdheid te draaien.</message>
 <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby uruchomić program Thunar w trybie administratora.</message>
 <message xml:lang="pt">Autenticação necessária para executar Thunar como root.</message>
 <message xml:lang="pt_BR">Autenticação é requerida para rodar Thunar como superusuário.</message>
 <message xml:lang="ro">Pentru a porni Thunar ca root este nevoie de autentificare.</message>
 <message xml:lang="ru">Требуется аутентификация для запуска Thunar от суперпользователя</message>
 <message xml:lang="sk">Na spustenie Thunaru ako root je potrebná autentifikácia.</message>
 <message xml:lang="sr">Потребна је потврда овлашћења ради покретања Тунара под кореним овлашћењима</message>
 <message xml:lang="th">ต้องยืนยันตัวบุคคลก่อนเรียกทำงาน Thunar ในฐานะ root</message>
 <message xml:lang="tr">Thunar'ı root olarak çalıştırmak için kimlik doğrulaması gereklidir</message>
 <message xml:lang="uk">Вимагається розпізнавання для запуску Thunar з правами суперкористувача.</message>
 <message xml:lang="zh_CN">以 root 身份运行 Thunar 需要进行身份验证。</message>
 <message xml:lang="zh_TW">要以 root 身份執行 Thunar 需要認證。</message>
 <defaults>
 <allow_any>no</allow_any>
 <allow_inactive>auth_admin</allow_inactive>
 <allow_active>auth_admin</allow_active>
 </defaults>
 <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/thunar</annotate>
 <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
 </action>

</policyconfig>


Зальём образ - будем посмотреть.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
http://nightly.altlinux.org/p7/beta/
:-)

:-)
Честно говоря, после июньской регулярки, мой энтузиазм, в плане перспективности sysv на p7/t7, стремительно движется к нулю.

Запустил xfce-sysv-p7-beta лайвом.
Вроде бы shutdown-helper и опции отображает в своём меню, и отрабатывает, - даже на пользователе tester. И что интересно, рулез монтирования работает без изменений.
Но стоило вынести из системы пакет sudo, как абсолютно всё в shutdown-helper у всех сломалось - активна только опция Выйти; и уже в окне *dm через Параметры можно или Выключить или Перегрузить компьютер. Но на этом и всё. И даже возврат sudo и sudoers не помогает. Т.е. получается что в отношении p7/t7 Женя Прокопьев таки прав, когда поднимал shutdown-helper для всех (все в wheel) через беспарольный sudo.

Возвратил июньскую регулярку и загрузил её лайвом.
Рулез монтирования ввернул конечно свой - группа не принципиальна в конце-концов.
Если что, storage, так storage.
Иначе кроме fs встроенного винчестера ничего не монтирует.
Далее удалил sudo... И..., - вау!!!

Если пользователь не в xgrp, опции shutdown-helper не исчезают и не затеняются - они просто перестают работать, все кроме Выйти. Но если в xgrp - все работают.
И при этом sudo в системе не нужен чуть больше чем совсем! Точнее сказать он не обязателен.
При наличии рулеза и наличии пользователя в группе указанной в рулезе, регулярка на sysv остаётся полнофункциональной для непревилегированного пользователя.
А это на два порядка лучше чем держать всех в wheel, что требуется в p7/t7 для xfsm-shutdown-helper.

Понятно что polkit-sysvinit это всё временные меры, и как только в альтовых системах на sysv всё придёт в норму, этот пакет станет не нужным и его надо будет удалять.

Так что в отношении sysv на сизифных системах, перспективы если и не радужные, но во всяком случае как минимум весьма обнадёживающие. По крайней мере из увиденного на xfce 4.12. Это смотрится настолько хорошо, что возможные неровности сизифа уже не очень-то и пугают.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Теперь про косяк udisks2...

Начнём издалека:
Вот в таком виде на установленной системе с образа
http://fly.osdn.org.ua/~mike/iso/sysvinit/regular-xfce-sysv-20150617-i586.iso
файловые системы флешек и оптических дисков монтируются и отмонтируются, а устройства извлекаются с выбросом лотка DVD-привода, даже если файловые системы этих устройств смонтированы:
# cat /etc/polkit-1/rules.d/60-sysvinit-mount-lastwork.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("xgrp")   )
    {
return polkit.Result.YES;
    }
});


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-other-seat" ) && subject.isInGroup("xgrp")   )
    {
return polkit.Result.YES;
    }
});


polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.eject-media-other-seat" && subject.isInGroup("xgrp") )
    {
return polkit.Result.YES;
    }
});

Повторно проверилось с перезагрузкой системы.

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

Тут сказанное выше надо прокомментировать, - при каких условиях это было сказано:
Система с xfce4+sysv установлена на ide-hdd. usb-накопители подключались либо к usb-портам материнки ноутбука, либо к usb-портам pcmcia usb-контроллера.
Это упоминание важно!


Шо мы имеем теперь?

# mount | grep sda1
/dev/sda1 on / type ext4 (rw,relatime,data=ordered)
# ls -l /dev/disk/by-uuid/|grep 'sda1\|sda2'
lrwxrwxrwx 1 root root 10 янв 11 03:31 63a0853c-22e1-44c8-805d-be240ef8aaf1 -> ../../sda1
lrwxrwxrwx 1 root root 10 янв 11 03:31 b4f5d195-2a6c-466b-98ee-c151a1cf62e9 -> ../../sda2
# ls -l /dev/disk/by-path/|grep 'sda1\|sda2'
lrwxrwxrwx 1 root root 10 янв 11 03:31 pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 янв 11 03:31 pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0-part2 -> ../../sda2
# grep 1cf62e9 /etc/fstab
#UUID=b4f5d195-2a6c-466b-98ee-c151a1cf62e9 /mnt/sdd2 ext3 defaults 0 0
# cat /etc/polkit-1/rules.d/99-udisk2_mount.rules // Монтировать файловую систему на системном устройстве  без запроса авторизации
// ( Стационарный HDD )
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
    };
});


// Монтировать файловую систему с устройства, подключенного в другое место  без запроса авторизации
// ( Накопители USB )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});

Добавляем к рулезу правило для извлечения устройства подключенного в other-seat
  <action id="org.freedesktop.udisks2.eject-media-other-seat">
    <description xml:lang="ru">Извлечь носитель информации из привода, подключённого в другое место</description>
    <message xml:lang="ru">Для извлечения носителя информации из привода, подключённого в другое место, требуется подтверждение подлинности пользователя</message>

и приводим рулез к виду
# cat /etc/polkit-1/rules.d/99-udisk2_mount.rules
// Монтировать файловую систему на системном устройстве  без запроса авторизации
// ( Стационарный HDD )
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
    };
});


// Монтировать файловую систему с устройства, подключенного в другое место  без запроса авторизации
// ( Накопители USB )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});


// Извлечь носитель информации из привода, подключённого в другое место  без запроса авторизации
// ( Накопители USB )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.eject-media-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});

Для устройств mount-system, thunar не отображает опцию Извлечь - ide-hdd и sata извлекать бессмысленно.
Зато он отображает эту опцию для usb-флеш.

Смонтируем флешку через thunar:
# mount|grep alt-live
/dev/sdc2 on /run/media/этоя/alt-live-storage type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)

А теперь извлечём нашу флешку:
См. скриншот 1
Если система запущена с устройства подключенного к other-seat, в данном случае система запущена с sda1 расположенного на usb-hdd, то извлечение флешки, которая тоже подключена к other-seat, обломается при извлечении.
Но при этом обломе на извлечении, файловая флешки будет корректно размонтирована.

На первом обломе, не поверил сизифной регулярке на usb-hdd и загрузился с кардридера с enp-ового лайва xfce+sysv который на t7. И получил тот же облом при извлечении через thunar usb-флеш подключенной к usb-порту.

Вот такие вот пирожки с котятами в udisks2...

dango

  • Гость
Так понимаю, udisks2 для устройств other-seat не делает никаких различий и управляет ими согласно общим правилам?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Теперь про косяк udisks2...
Продолжение... С решением проблемы.

Лечится облом с извлечением usb-флеш таким образом, даже если корневая система тоже находится на other-seat:

Правило power-off-drive-other-seat позволяет извлечь usb-флеш, а eject-media-other-seat извлечь лоток оптического привода:
// Извлечь носитель информации из привода, подключённого в другое место  без запроса авторизации
// ( Оптические накопители )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.eject-media-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});

// Выключить питание привода, подключённого к другому месту  без запроса авторизации
// ( Накопители USB, Извлечь )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.power-off-drive-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});

При наличии этих двух правил, usb-флеш корректно извлекается без запроса авторизации в системе на sysvinit:
$ udisksctl mount -b /dev/sdc2
Mounted /dev/sdc2 at /run/media/wilder/alt-live-storage.
$ udisksctl unmount -b /dev/sdc2
Unmounted /dev/sdc2.
$ lsblk|grep sdc
sdc      8:32   1    3,8G  0 disk
├─sdc1   8:33   1    489M  0 part
└─sdc2   8:34   1    3,3G  0 part
$ udisksctl power-off -b /dev/sdc
$ lsblk|grep sdc
$
В файловом менеджере thunar, эти операции (размонтировать - отключить питание) выполняются одной командой из меню Thunar: Извлечь


Т.о. рулез монтирования с минимально необходимым функционалом должен выглядеть так:
# cat /etc/polkit-1/rules.d/99-udisk2_mount.rules
// Монтировать файловую систему на системном устройстве  без запроса авторизации
// ( Стационарный HDD )
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
    };
});


// Монтировать файловую систему с устройства, подключенного в другое место  без запроса авторизации
// ( Накопители USB )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});


// Извлечь носитель информации из привода, подключённого в другое место  без запроса авторизации
// ( Оптические накопители )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.eject-media-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});

// Выключить питание привода, подключённого к другому месту  без запроса авторизации
// ( Накопители USB, Извлечь )
polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.power-off-drive-other-seat" && subject.isInGroup("xgrp")) {
return polkit.Result.YES;
     };
});


Этого хака в сизифном пакете polkit-sysvinit-0.2 нет.

Условия проверки:
- Система на sda1 usb-hdd подключенного к usb-порту (после POST в boot menu используется как загрузочный)
- Стационарный винчестер ноутбука ide-hdd с пустыми файловыми ntfs и ext4 (операционных систем не содержит - в стадии "ремонта" и контроля)
- usb-флеш подключенная к usb-порту pcmcia usb-контроллера NEC
« Последнее редактирование: 14.01.2016 00:46:18 от Speccyfighter »

dango

  • Гость
Уточняю.
Отдельно правила для USB-носителей, отдельно - для HDD? А карты памяти куда?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Уточняю.
Отдельно правила для USB-носителей, отдельно - для HDD?

Выходит что так.
Но что мне в этих экшнз udisks2 не понравилось, так это то, что формулировки дэскрипшн какие-то расплывчатые..., - для ясности нужно резко погружаться с головой.

А карты памяти куда?

А фиг его знает...
У меня ноутбук - бюджетный бизнес-класс, т.е. железом всё есть, но наружу не выведено, и карту просто некуда вставить:
$ lspci|grep 'Card\|SD'
02:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
02:06.4 SD Host controller: Texas Instruments PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller

Я б посмотрел бы, но не на чем... :-(
« Последнее редактирование: 11.01.2016 14:24:03 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Так понимаю, udisks2 для устройств other-seat не делает никаких различий и управляет ими согласно общим правилам?

Я не спец в ядерных потрохах.
Но вот что интересно:
Если система установлена на стационарнике, извлечение флешки отрабатывало и без этих двух правил.
И честно говоря, я эту логику не понимаю...
Не в смысле отрицаю, а именно не понимаю.
« Последнее редактирование: 11.01.2016 14:32:25 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Немного тут проясняется:
http://udisks.freedesktop.org/docs/latest/udisks-polkit-actions.html
Цитировать
Authorization Checks

Many methods and operations offered by udisks requires the calling user to be sufficiently authorized. Whether the user is authorized is checked using polkit allowing the administrator to configure fine-grained permissions via polkit authorization rules.

There is not necessarily a one-to-one relationship between D-Bus methods and polkit actions - typically the relationship is more complicated and depends on both the context of the process invoking the method, the object the method is acting on and possibly more factors. For example, the Filesystem.Mount() method call may check that the caller is authorized for one of the four actions org.freedesktop.udisks2.filesystem-mount, org.freedesktop.udisks2.filesystem-mount-system, org.freedesktop.udisks2.filesystem-mount-other-seat or org.freedesktop.udisks2.filesystem-mount-fstab depending on circumstances.

Often there will be two polkit actions for one operation - one for so-called “system devices” and one for non-system devices. In this context “system device” refers to the value of the Block:HintSystem D-Bus property and is normally only TRUE for devices not considered “removable” (devices considered removable include USB attached storage, Flash media and optical drives). See udisks(8) for how to control if a device is considered a system device.

Не, ну а это уже ж0па - эти правила надо будет от версии к версии руками крутить? :
Цитировать
The polkit actions are not considered stable and may change from release to release so administrators should take notice when upgrading from one version of udisks to another. For example, polkit authorization rules may need to be updated to match an updated policy.

Но пока не пойму, к чему относится это, и что под этим имелось в виду:
  <action id="org.freedesktop.udisks2.filesystem-mount">
    <description xml:lang="ru">Монтировать файловую систему</description>
    <message xml:lang="ru">Для монтирования файловой системы требуется подтверждение подлинности пользователя</message>
Что? Где? Когда?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Системное устройство:
Цитировать
http://udisks.freedesktop.org/docs/latest/udisks-polkit-actions.html
Often there will be two polkit actions for one operation - one for so-called “system devices” and one for non-system devices. In this context “system device” refers to the value of the Block:HintSystem D-Bus property and is normally only TRUE for devices not considered “removable” (devices considered removable include USB attached storage, Flash media and optical drives). See udisks(8) for how to control if a device is considered a system device.
Цитировать
http://udisks.freedesktop.org/docs/latest/gdbus-org.freedesktop.UDisks2.Block.html#gdbus-property-org-freedesktop-UDisks2-Block.HintSystem
The "HintSystem" property

HintSystem  readable   b

If TRUE, the device is considered a system device.
System devices are devices that require additional permissions to access.
See udisks(8) for how to influence the value of this property.

Короче:
Системные, это не съёмные устройства, "извлекаемые" устройства. И под одну операцию для системного и для съёмного устройства нужно своё правило. Извлекаемые, это usb-накопители, флешки и оптические приводы.
« Последнее редактирование: 11.01.2016 15:37:39 от Speccyfighter »