<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>35763</bug_id>
          
          <creation_ts>2018-12-13 14:45:22 +0300</creation_ts>
          <short_desc>systemd-run -t /bin/sh успешно срабатывает для пользователя из группы wheel</short_desc>
          <delta_ts>2024-03-12 21:32:19 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>polkit</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=29197</see_also>
    
    <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=48431</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46625</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey Y. Afonin">asy</reporter>
          <assigned_to name="Yuri N. Sedunov">aris</assigned_to>
          <cc>antohami</cc>
    
    <cc>aris</cc>
    
    <cc>berkut_174</cc>
    
    <cc>cas</cc>
    
    <cc>evg</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>nbr</cc>
    
    <cc>rider</cc>
    
    <cc>shaba</cc>
    
    <cc>shrek</cc>
    
    <cc>sin</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>176627</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2018-12-13 14:45:22 +0300</bug_when>
    <thetext>systemd-run -t /bin/sh успешно срабатывает для пользователя из группы wheel

С форума: https://forum.altlinux.org/index.php?topic=41933.0

$ systemd-run -t /bin/sh
Running as unit: run-u80.service
Press ^] three times within 1s to disconnect TTY.
sh-3.2# whoami
root

Это идёт вразрез вот с этим обсуждением (ссылка на середину сразу):
https://lists.altlinux.org/pipermail/devel/2018-December/206081.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176632</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2018-12-13 15:26:55 +0300</bug_when>
    <thetext>Перевешиваю на polkit. Это он разрешает. systemd-run только спрашивает у него.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176641</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-12-13 16:24:23 +0300</bug_when>
    <thetext>(In reply to comment #1)
&gt; Перевешиваю на polkit. Это он разрешает. systemd-run только спрашивает у него.

А файл с описанием этой политики кто поставляет, systemd или polkit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176642</commentid>
    <comment_count>3</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 16:44:26 +0300</bug_when>
    <thetext>описание политики находится в
/usr/share/polkit-1/actions/org.freedesktop.systemd1.policy

$ rpmquery -f /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy systemd-239-alt3.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176644</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2018-12-13 16:58:42 +0300</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; описание политики находится в
&gt; /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy
&gt; 
&gt; $ rpmquery -f /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy
&gt; systemd-239-alt3.x86_64

нет, эта policy не имеет никакого отношения к systemd-run. Точнее там не упоминается ничего о systemd-run.

systemd-run подпадает под правило по-умолчанию /etc/polkit-1/rules.d/50-default.rules.

Если мы не будем ничего менять в правиле по-умолчанию, тогда да, надо перевесить баг обратно на systemd и придумывать политику специально для systemd-run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176645</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-12-13 17:00:53 +0300</bug_when>
    <thetext>Давайте лучше исправим сразу для всех пользователей polkit, а не только для systemd-run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176646</commentid>
    <comment_count>6</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 17:04:22 +0300</bug_when>
    <thetext>$ groups user uucp proc cdrom floppy cdwriter audio radio users vmusers video camera vboxusers xgrp scanner
$ systemd-run -t /bin/sh
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to manage system services or other units.
Authenticating as: System Administrator (root)
Password: 
==== AUTHENTICATION COMPLETE ==== Running as unit: run-u299.service
Press ^] three times within 1s to disconnect TTY.
sh-3.2# whoami
root

$ groups user wheel uucp proc cdrom floppy cdwriter audio radio users vmusers video camera vboxusers xgrp scanner
$ systemd-run -t /bin/sh
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to manage system services or other units.
Authenticating as: user Password: 
==== AUTHENTICATION COMPLETE ==== Running as unit: run-u307.service
Press ^] three times within 1s to disconnect TTY.
sh-3.2# whoami
root</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176647</commentid>
    <comment_count>7</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 17:07:40 +0300</bug_when>
    <thetext>вот здесь все прекрасно видно. если пользователь в группе wheel                         авторизуем с паролем пользователя. если пользователь не в группе wheel авторизуем с паролем рута</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176648</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-12-13 17:08:43 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; вот здесь все прекрасно видно. если пользователь в группе wheel                
&gt;         авторизуем с паролем пользователя. если пользователь не в группе wheel
&gt; авторизуем с паролем рута

Да, об этом и баг, что это неправильно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176649</commentid>
    <comment_count>9</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 17:13:17 +0300</bug_when>
    <thetext>$ grep -A8 \&quot;org.freedesktop.systemd1.manage-units\&quot; /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy
        &lt;action id=&quot;org.freedesktop.systemd1.manage-units&quot;&gt;
                &lt;description gettext-domain=&quot;systemd&quot;&gt;Manage system services or other units&lt;/description&gt;
                &lt;message gettext-domain=&quot;systemd&quot;&gt;Authentication is required to manage system services or other units.&lt;/message&gt;
                &lt;defaults&gt;
                        &lt;allow_any&gt;auth_admin&lt;/allow_any&gt;
                        &lt;allow_inactive&gt;auth_admin&lt;/allow_inactive&gt;
                        &lt;allow_active&gt;auth_admin_keep&lt;/allow_active&gt;
                &lt;/defaults&gt;
        &lt;/action&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176650</commentid>
    <comment_count>10</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 17:22:49 +0300</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; Да, об этом и баг, что это неправильно.

что конкретно? авторизовать с паролем пользователя?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176651</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-12-13 17:27:33 +0300</bug_when>
    <thetext>(In reply to comment #10)
&gt; (В ответ на комментарий №8)
&gt; &gt; Да, об этом и баг, что это неправильно.
&gt; 
&gt; что конкретно? авторизовать с паролем пользователя?

Да, аутентифицировать пользователя (по паролю) для авторизации рута.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176652</commentid>
    <comment_count>12</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 17:36:56 +0300</bug_when>
    <thetext>ну тогда вам сюда
/etc/polkit-1/rules.d/50-default.rules
и таки да polkit считает пользователя в группе wheel рутом</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176653</commentid>
    <comment_count>13</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 17:47:59 +0300</bug_when>
    <thetext>вот нормальное описание
https://wiki.archlinux.org/index.php/Polkit#Administrator_identities</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176654</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-12-13 18:08:52 +0300</bug_when>
    <thetext>(In reply to comment #13)
&gt; вот нормальное описание
&gt; https://wiki.archlinux.org/index.php/Polkit#Administrator_identities

Не всё, что годится для Arch, годится для ALT.
Я могу себе представить какой-нибудь упрощённый дистрибутив вроде Simply,
где такая политика авторизации рута документирована и подходит, но в общем случае это уязвимость.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176655</commentid>
    <comment_count>15</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2018-12-13 18:14:02 +0300</bug_when>
    <thetext>в таком случае просто не паковать /etc/polkit-1/rules.d/50-default.rules или паковать в отдельный пакет</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176731</commentid>
    <comment_count>16</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2018-12-16 16:01:03 +0300</bug_when>
    <thetext>(In reply to comment #7)

&gt; вот здесь все прекрасно видно. если пользователь в группе wheel                
&gt; авторизуем с паролем пользователя. если пользователь не в группе wheel
&gt; авторизуем с паролем рута

Запрос на аналогичное поведение sudo (bug 18344) было решено не реализовывать. И тут оказывается, то в дистрибутивах с systemd есть второй путь для получения административных привилегий любым членом группы wheel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232563</commentid>
    <comment_count>17</comment_count>
    <who name="nbr">nbr</who>
    <bug_when>2023-09-05 13:07:54 +0300</bug_when>
    <thetext>To aris@ shrek@ shaba@
Пожалуйста, уделите внимание этому багу. ACL на пакет только на вас.
Может быть просто удалить 50-default.rules?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238232</commentid>
    <comment_count>18</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2023-12-02 08:05:40 +0300</bug_when>
    <thetext>(Ответ для nbr на комментарий #17)
&gt; To aris@ shrek@ shaba@
&gt; Пожалуйста, уделите внимание этому багу. ACL на пакет только на вас.
&gt; Может быть просто удалить 50-default.rules?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238288</commentid>
    <comment_count>19</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2023-12-04 12:17:19 +0300</bug_when>
    <thetext>(Ответ для Valery Inozemtsev на комментарий #15)
&gt; в таком случае просто не паковать /etc/polkit-1/rules.d/50-default.rules или
&gt; паковать в отдельный пакет
Считаю некорректным предлагать мантейнеру пакета просто откреститься, а пользователям и релиз-менеджерам расхлёбывать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238363</commentid>
    <comment_count>20</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2023-12-05 10:46:54 +0300</bug_when>
    <thetext>polkit-123-alt1 -&gt; sisyphus:

 Mon Dec 04 2023 Valery Inozemtsev &lt;shrek@altlinux.ru&gt; 123-alt1
 - 123
 - is not packed 50-default.rules (closes: #35763)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238365</commentid>
    <comment_count>21</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2023-12-05 10:54:08 +0300</bug_when>
    <thetext>&gt;  Mon Dec 04 2023 Valery Inozemtsev &lt;shrek@altlinux.ru&gt; 123-alt1
&gt;  - is not packed 50-default.rules (closes: #35763)
﷐[U+1F4A9]﷑</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238367</commentid>
    <comment_count>22</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2023-12-05 11:08:13 +0300</bug_when>
    <thetext>А в p10 исправлять будут?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238379</commentid>
    <comment_count>23</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2023-12-05 13:03:52 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #22)
&gt; А в p10 исправлять будут?

#335797</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238470</commentid>
    <comment_count>24</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2023-12-05 21:00:53 +0300</bug_when>
    <thetext>(Ответ для Valery Inozemtsev на комментарий #23)
&gt; (Ответ для Sergey V Turchin на комментарий #22)
&gt; &gt; А в p10 исправлять будут?
&gt; 
&gt; #335797

Кто-нибудь одобрит?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238560</commentid>
    <comment_count>25</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2023-12-07 12:28:22 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #19)
&gt; (Ответ для Valery Inozemtsev на комментарий #15)
&gt; &gt; в таком случае просто не паковать /etc/polkit-1/rules.d/50-default.rules или
&gt; &gt; паковать в отдельный пакет
&gt; Считаю некорректным предлагать мантейнеру пакета просто откреститься, а
&gt; пользователям и релиз-менеджерам расхлёбывать.
Ну конкретно ради Simply, где и так sudo настраивается пользователю,
можно вынести в какой polkit-wheel-is-root.

Но вообще этих веб-макак пороть в детстве надо было, конечно,
а не набирать по объявлению системный софт писать :-/
Вчера собирал polkit-duktape 0.120 на сей счёт.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238562</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2023-12-07 12:29:34 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #24)
&gt; &gt; &gt; А в p10 исправлять будут?
&gt; &gt; #335797
&gt; Кто-нибудь одобрит?
Да.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238917</commentid>
    <comment_count>27</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-13 11:15:02 +0300</bug_when>
    <thetext>(Ответ для Michael Shigorin на комментарий #25)
&gt; (Ответ для Sergey V Turchin на комментарий #19)
&gt; &gt; (Ответ для Valery Inozemtsev на комментарий #15)
&gt; &gt; &gt; в таком случае просто не паковать /etc/polkit-1/rules.d/50-default.rules или
&gt; &gt; &gt; паковать в отдельный пакет
&gt; &gt; Считаю некорректным предлагать мантейнеру пакета просто откреститься, а
&gt; &gt; пользователям и релиз-менеджерам расхлёбывать.
&gt; Ну конкретно ради Simply, где и так sudo настраивается пользователю,
&gt; можно вынести в какой polkit-wheel-is-root.
&gt; 
&gt; Но вообще этих веб-макак пороть в детстве надо было, конечно,
&gt; а не набирать по объявлению системный софт писать :-/
&gt; Вчера собирал polkit-duktape 0.120 на сей счёт.

В каком смысле &quot;ради Simply&quot;?

Давайте мы дружно пересядем с локальных пользователей на доменных и посмотрим на проблему их глазами.

Предлагаю подумать откатить всё обратно. Либо предложить что-то разумное тысячам клиентов в домене, у которым после такого чудесного обновления в стабильном бранче отвалится доступ. Везде.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238918</commentid>
    <comment_count>28</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-13 11:17:04 +0300</bug_when>
    <thetext>Никто не подумал, что нужно не группу выпиливать, а правило polkit&apos;а, по умолчанию поменять?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238919</commentid>
    <comment_count>29</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2023-12-13 11:17:45 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #27)
&gt; (Ответ для Michael Shigorin на комментарий #25)
&gt; &gt; (Ответ для Sergey V Turchin на комментарий #19)
&gt; &gt; &gt; (Ответ для Valery Inozemtsev на комментарий #15)
&gt; &gt; &gt; &gt; в таком случае просто не паковать /etc/polkit-1/rules.d/50-default.rules или
&gt; &gt; &gt; &gt; паковать в отдельный пакет
&gt; &gt; &gt; Считаю некорректным предлагать мантейнеру пакета просто откреститься, а
&gt; &gt; &gt; пользователям и релиз-менеджерам расхлёбывать.
&gt; &gt; Ну конкретно ради Simply, где и так sudo настраивается пользователю,
&gt; &gt; можно вынести в какой polkit-wheel-is-root.
&gt; &gt; 
&gt; &gt; Но вообще этих веб-макак пороть в детстве надо было, конечно,
&gt; &gt; а не набирать по объявлению системный софт писать :-/
&gt; &gt; Вчера собирал polkit-duktape 0.120 на сей счёт.
&gt; 
&gt; В каком смысле &quot;ради Simply&quot;?
&gt; 
&gt; Давайте мы дружно пересядем с локальных пользователей на доменных и
&gt; посмотрим на проблему их глазами.
&gt; 
&gt; Предлагаю подумать откатить всё обратно. Либо предложить что-то разумное
&gt; тысячам клиентов в домене, у которым после такого чудесного обновления в
&gt; стабильном бранче отвалится доступ. Везде.

Можно отдельный пакет сделать c правилом. И именно в p10 у polkit поставить зависимость на него.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238920</commentid>
    <comment_count>30</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2023-12-13 11:19:12 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #28)
&gt; Никто не подумал, что нужно не группу выпиливать, а правило polkit&apos;а, по
&gt; умолчанию поменять?

О выпиливании какой группы речь? Как поменять?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238921</commentid>
    <comment_count>31</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-13 11:21:10 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #29)
[...]
&gt; 
&gt; Можно отдельный пакет сделать c правилом. И именно в p10 у polkit поставить
&gt; зависимость на него.

Звучит очень странно. Нет, так не пойдёт.

Кто-нибудь может сказать какой action-id использует команда из-за которой весь сыр бор?:
$ systemd-run -t /bin/sh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238922</commentid>
    <comment_count>32</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2023-12-13 11:21:26 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #28)
&gt; нужно не группу выпиливать, а правило polkit&apos;а, по умолчанию поменять
Так и сделали, вроде.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238924</commentid>
    <comment_count>33</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2023-12-13 11:24:08 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #31)
&gt; (Ответ для Антон Мидюков на комментарий #29)
&gt; [...]
&gt; &gt; 
&gt; &gt; Можно отдельный пакет сделать c правилом. И именно в p10 у polkit поставить
&gt; &gt; зависимость на него.
&gt; 
&gt; Звучит очень странно. Нет, так не пойдёт.
&gt; 

Почему? В p10 поведение не меняется. В p11 правило может быть включено в состав коробки дистрибутива. Никто ничего не заметит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238925</commentid>
    <comment_count>34</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-13 11:45:34 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #33)
&gt; (Ответ для Evgeny Sinelnikov на комментарий #31)
&gt; &gt; (Ответ для Антон Мидюков на комментарий #29)
&gt; &gt; [...]
&gt; &gt; &gt; 
&gt; &gt; &gt; Можно отдельный пакет сделать c правилом. И именно в p10 у polkit поставить
&gt; &gt; &gt; зависимость на него.
&gt; &gt; 
&gt; &gt; Звучит очень странно. Нет, так не пойдёт.
&gt; &gt; 
&gt; 
&gt; Почему? В p10 поведение не меняется. В p11 правило может быть включено в
&gt; состав коробки дистрибутива. Никто ничего не заметит.

В каком смысле не поменяется. То есть правило, что wheel - это группа с админскими привилегиями убрали. А через эту группу доменные пользователи только и могут получать сейчас привилегии.

А доменные пользователи как будут их теперь получать? По паролю рута?



(Ответ для Sergey V Turchin на комментарий #32)
&gt; (Ответ для Evgeny Sinelnikov на комментарий #28)
&gt; &gt; нужно не группу выпиливать, а правило polkit&apos;а, по умолчанию поменять
&gt; Так и сделали, вроде.

Так, да не так...


Вот дефолтные правила для action-id:

$ cat /usr/share/polkit-1/actions/org.freedesktop.packagekit.policy |grep -i -e yes -e &quot;action id&quot;
  &lt;action id=&quot;org.freedesktop.packagekit.cancel-foreign&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.package-install&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.package-install-untrusted&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.package-reinstall&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.package-downgrade&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.system-trust-signing-key&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.package-eula-accept&quot;&gt;
      &lt;allow_active&gt;yes&lt;/allow_active&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.package-remove&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.system-update&quot;&gt;
          - Changing this to anything other than &apos;yes&apos; will break unattended
      &lt;allow_active&gt;yes&lt;/allow_active&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.system-sources-configure&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.system-sources-refresh&quot;&gt;
      &lt;allow_active&gt;yes&lt;/allow_active&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.system-network-proxy-configure&quot;&gt;
      &lt;allow_active&gt;yes&lt;/allow_active&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.device-rebind&quot;&gt;
          - This should not be set to &apos;yes&apos; as unprivileged users could then
      &lt;allow_active&gt;yes&lt;/allow_active&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.upgrade-system&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.repair-system&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.trigger-offline-update&quot;&gt;
      &lt;allow_active&gt;yes&lt;/allow_active&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.trigger-offline-upgrade&quot;&gt;
  &lt;action id=&quot;org.freedesktop.packagekit.clear-offline-update&quot;&gt;
      &lt;allow_active&gt;yes&lt;/allow_active&gt;


Кто, вообще, решил, что удалённое правило является источником проблемы, обозначенной в заголовке этой задачи?

$ id
uid=758801104(sin) gid=758800513(domain users) группы=758800513(domain users),10(wheel),14(uucp),19(proc),22(cdrom),51(ftpadmin),71(floppy),80(cdwriter),81(audio),83(radio),100(users),101(localadmins),430(usershares),442(docker),448(vboxsf),451(hashman),461(vboxadd),463(fuse),467(video),477(vboxusers),480(camera),494(remote),498(xgrp),499(scanner),500(admin),501(sin_a),502(sin_b),758801110(software admins),758801125(server admins),758801126(docs admins),758801132(gpo admins),758801133(integration team),758801134(system team),758801136(public admins),758801178(workstation admins),758801183(security team)

$ sudo 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 [&quot;unix-group:wheel&quot;];
});


$ systemd-run -t /bin/sh
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to manage system services or other units.
Authenticating as: Evgeny Sinelnikov (sin)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238927</commentid>
    <comment_count>35</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2023-12-13 11:54:26 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #34)
&gt; (Ответ для Антон Мидюков на комментарий #33)
&gt; &gt; (Ответ для Evgeny Sinelnikov на комментарий #31)
&gt; &gt; &gt; (Ответ для Антон Мидюков на комментарий #29)
&gt; &gt; &gt; [...]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Можно отдельный пакет сделать c правилом. И именно в p10 у polkit поставить
&gt; &gt; &gt; &gt; зависимость на него.
&gt; &gt; &gt; 
&gt; &gt; &gt; Звучит очень странно. Нет, так не пойдёт.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Почему? В p10 поведение не меняется. В p11 правило может быть включено в
&gt; &gt; состав коробки дистрибутива. Никто ничего не заметит.
&gt; 
&gt; В каком смысле не поменяется. То есть правило, что wheel - это группа с
&gt; админскими привилегиями убрали. А через эту группу доменные пользователи
&gt; только и могут получать сейчас привилегии.
&gt; 

Я предложил в p10 собрать пакет с правилом, выставить зависимость у polkit в p10 на пакет с этим правилом. Итого в p10 это правило всегда будет, а в p11 его можно будет устанавливать или не устанавливать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238934</commentid>
    <comment_count>36</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-13 13:24:13 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #35)
[...]
&gt; 
&gt; Я предложил в p10 собрать пакет с правилом, выставить зависимость у polkit в
&gt; p10 на пакет с этим правилом. Итого в p10 это правило всегда будет, а в p11
&gt; его можно будет устанавливать или не устанавливать.

А что, в сущности, означает подход, при котором такое правило можно не устанавливать?

По-моему, очень просто получается. Получается, что без знания пароля рута, запрещаются любые административные действия.

Вариант без пароля я вообще не рассматриваю. Но в данном же случае речь совсем о другом. У меня 20 или 200 машин. С каким паролем рута их ставили уже никто не вспомнит. Логин осуществляется сетевым пользователем. Каким образом предлагается получать административные привилегии?

Водораздел проходит по вопросу получения рутового shell&apos;а. Чем systemd-run -t /bin/sh доступный по группе wheel, отличается от sudo /bin/sh по группе wheel. Про это никто не договоривался. Про это, по умолчанию, нет.

Но дальше больше. Сейчас речь-то зашла о любых, вообще, административных действиях.

Почему? Потому что action_id соответствующий org.freedesktop.systemd1.manage-units трактуется слишком широко. Ну, можно было бы его отключить...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238981</commentid>
    <comment_count>37</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-12-14 08:43:03 +0300</bug_when>
    <thetext>По идее админские привилегии доменный пользователь должен получать через пароль доменного пользователя при условии вхождения в какую-то группу.

Группа wheel лично меня устраивает, но у ldv были какие-то возражения по этому поводу (а может быть и не по этому).

Самое главное - для перехода на более высокие привилегии обязательно должен запрашиваться пользовательский пароль (или использоваться другая схема авторизации, настроенная для доменного пользователя а pam)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238983</commentid>
    <comment_count>38</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-14 08:51:59 +0300</bug_when>
    <thetext>Локальные привилегии назначаются на основании назначенных локальных групп. Переписывать все приложения для поиска новых групп-привилегий - штука непонятная.

Делается такое назначение через модуль ролей.

- без модуля libnss-role:

$ grep ^group /etc/nsswitch.conf
group:      files [SUCCESS=merge] sss systemd

$ id sin
uid=87001104(sin) gid=87000513(domain users) группы=87000513(domain users),972(nfsuser),953(hashman),1001(sin_a),1002(sin_b),87000512(domain admins),87001115(dist admins),87000572(denied rodc password replication group)

- с модулем libnss-role:

$ grep ^group /etc/nsswitch.conf
group:      files [SUCCESS=merge] sss systemd role

$ id sin
uid=87001104(sin) gid=87000513(domain users) группы=87000513(domain users),972(nfsuser),953(hashman),1001(sin_a),1002(sin_b),87000512(domain admins),87001115(dist admins),87000572(denied rodc password replication group),100(users),36(vmusers),80(cdwriter),22(cdrom),81(audio),981(video),19(proc),83(radio),963(camera),71(floppy),998(xgrp),999(scanner),14(uucp),948(vboxusers),970(fuse),101(localadmins),10(wheel)

Правила назначения групп:

$ rolelst -V
# Settings read from /etc/role:
users:vmusers
domain users:users
domain admins:localadmins
# Resulting settings merged with /etc/role.d entries
users:vmusers,cdwriter,cdrom,audio,video,proc,radio,camera,floppy,xgrp,scanner,uucp,vboxusers,fuse
domain users:users
domain admins:localadmins
localadmins:wheel,vboxusers
powerusers:remote,vboxusers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238984</commentid>
    <comment_count>39</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-14 09:02:34 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #37)
[...]
&gt; Самое главное - для перехода на более высокие привилегии обязательно должен
&gt; запрашиваться пользовательский пароль (или использоваться другая схема
&gt; авторизации, настроенная для доменного пользователя а pam)

Ну, то есть согласен с rider@. И даже более того. Других особых вариантов повышения привилегий для доменных пользователей, кроме как по группе, особо не вижу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239526</commentid>
    <comment_count>40</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2023-12-25 13:58:31 +0300</bug_when>
    <thetext>(Ответ для Evgeny Sinelnikov на комментарий #39)
&gt; (Ответ для Anton Farygin на комментарий #37)
&gt; [...]
&gt; &gt; Самое главное - для перехода на более высокие привилегии обязательно должен
&gt; &gt; запрашиваться пользовательский пароль (или использоваться другая схема
&gt; &gt; авторизации, настроенная для доменного пользователя а pam)
&gt; 
&gt; Ну, то есть согласен с rider@. И даже более того. Других особых вариантов
&gt; повышения привилегий для доменных пользователей, кроме как по группе, особо
&gt; не вижу.

Вторая неделя пошла, как дефолтное правило удалили в p10.
Непонятно, почему не возвращаем назад, если это проблема для доменных пользователей. Или не проблема?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241156</commentid>
    <comment_count>41</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2024-02-05 12:52:03 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #40)
&gt; &gt; Других особых вариантов повышения привилегий для доменных пользователей,
&gt; &gt; кроме как по группе, особо не вижу.
&gt; Вторая неделя пошла, как дефолтное правило удалили в p10.
&gt; Непонятно, почему не возвращаем назад, если это проблема для доменных
&gt; пользователей. Или не проблема?
Напрашивается отдельный пакет с внятным именем.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242906</commentid>
    <comment_count>42</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2024-03-12 21:32:19 +0300</bug_when>
    <thetext>(Ответ для Michael Shigorin на комментарий #41)
&gt; (Ответ для Антон Мидюков на комментарий #40)
&gt; &gt; &gt; Других особых вариантов повышения привилегий для доменных пользователей,
&gt; &gt; &gt; кроме как по группе, особо не вижу.
&gt; &gt; Вторая неделя пошла, как дефолтное правило удалили в p10.
&gt; &gt; Непонятно, почему не возвращаем назад, если это проблема для доменных
&gt; &gt; пользователей. Или не проблема?
&gt; Напрашивается отдельный пакет с внятным именем.

Не знаю, как насчёт внятности, но такой пакет теперь есть. Это polkit-default-rules.
Багу закрываю.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>