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

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

    <bug>
          <bug_id>33840</bug_id>
          
          <creation_ts>2017-09-01 18:10:17 +0300</creation_ts>
          <short_desc>Ошибка входа доменного пользователя при включенном SELinux</short_desc>
          <delta_ts>2017-10-06 19:47:45 +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>selinux-policy-alt</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey Novikov">sotor</reporter>
          <assigned_to name="Nobody&apos;s working on this, feel free to take it">nobody</assigned_to>
          <cc>boyarsh</cc>
    
    <cc>nbr</cc>
    
    <cc>rider</cc>
    
    <cc>sem</cc>
    
    <cc>sin</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165537</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Novikov">sotor</who>
    <bug_when>2017-09-01 18:10:17 +0300</bug_when>
    <thetext>На машине введенной в домен FreeIPA невозможно зайти доменным пользователем при включенном SELinux, потому что сервис sssd пытается получить доступ к файлам в директории /etc/selinux/alt/contexts/files, а политика ему это не позволяет:

type=ROLE_ASSIGN msg=audit(1504276892.251:84): pid=1638 uid=0 auid=4294967295 ses=4294967295 subj=generic_u:generic_r:generic_t:s0 msg=&apos;op=login-sename,role,range acct=&quot;test01&quot; old-seuser=? old-role=? old-range=? new-seuser=generic_u new-role=object_r,generic_r new-range=s0-s3:c0.c15 exe=&quot;/usr/libexec/sssd/selinux_child&quot; hostname=? addr=? terminal=? res=success&apos;

type=AVC msg=audit(1504276892.304:85): avc:  denied  { write } for  pid=1638 comm=&quot;selinux_child&quot; name=&quot;files&quot; dev=&quot;vda2&quot; ino=440139 scontext=generic_u:generic_r:generic_t:s0 tcontext=generic_u:object_r:selinux_protected_t:s0 tclass=dir permissive=0

find /etc/ -inum 440139
/etc/selinux/alt/contexts/files

При отключении SELinux заходит нормально и правила сопоставления SELinux-пользователей FreeIPA работают.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166096</commentid>
    <comment_count>1</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2017-10-04 02:47:00 +0300</bug_when>
    <thetext>2rider: Антон, есть проблемы с исправлением?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166100</commentid>
    <comment_count>2</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-10-04 07:32:21 +0300</bug_when>
    <thetext>Я этим не занимаюсь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166139</commentid>
    <comment_count>3</comment_count>
    <who name="nbr">nbr</who>
    <bug_when>2017-10-04 15:57:51 +0300</bug_when>
    <thetext>В багу приглашается sin@ с вопросом: а что,собственно, надо sssd от selinux в данном случае. Ему это действительно надо (тогда надо менять полиси) или его надо самого патчить, чтобы он &quot;это&quot; не запрашивал?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166140</commentid>
    <comment_count>4</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2017-10-04 16:01:19 +0300</bug_when>
    <thetext>Это надо посмотреть. И ещё нужно учесть, что sssd умеет сам selinux (и тут надо уточнить, что он умеет). В поддержкой selinux sssd что-то, действительно, хочет от selinux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166141</commentid>
    <comment_count>5</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-10-04 16:04:13 +0300</bug_when>
    <thetext>Жень, исходи пожалуйста из того, что политику менять сейчас гемморойно.
Но, наверное можно, особенно если кто-то сможет подробно описать что именно в ней менять (а ещё лучше сделает патчи).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166142</commentid>
    <comment_count>6</comment_count>
    <who name="nbr">nbr</who>
    <bug_when>2017-10-04 16:13:06 +0300</bug_when>
    <thetext>Вот этот модуль пытается работать. В других ОС он имеет специальный контекст, который разрешает ему работать с selinux users.
http://git.altlinux.org/gears/s/sssd.git?p=sssd.git;a=blob;f=src/providers/ipa/selinux_child.c;h=f8dd3954a7244df2dcbb910aabf8888f41306c09;hb=b47fd11a259c50e63cd674c7cba0da3f2549cae0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166143</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-10-04 16:24:28 +0300</bug_when>
    <thetext>В федоре:
# ls -Z /usr/libexec/sssd/selinux_child
system_u:object_r:sssd_selinux_manager_exec_t:s0 /usr/libexec/sssd/selinux_child

Мне кажется проще всего разрешить sssd делать то, что ему нужно. Т.е. добавить тип аналогичный sssd_selinux_manager_exec_t в selinux-policy-alt и установить его для selinux_child. Насколько это сложно сделать не знаю, я никогда не смотрел внутрь selinux-policy-alt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166195</commentid>
    <comment_count>8</comment_count>
    <who name="nbr">nbr</who>
    <bug_when>2017-10-06 17:22:31 +0300</bug_when>
    <thetext>В ALT policy НЕТ targeted политики, таким образом маппинг пользователей на selinux пользователей не имеет смысла. Freeipa работает на одном уровне MLS и поэтому 
1) всех пользователей надо маппить при создании на пользователя generic_u 
2) ставить freeipa_server с выключенным selinux и подключать клиента - тоже
3) после установки в /etc/sssd/sssd.conf в cекции domain/&lt;имя домена&gt;
добавить selinux_provider=none
Есть работающий стенд.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166196</commentid>
    <comment_count>9</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-10-06 17:33:50 +0300</bug_when>
    <thetext>Денис, спасибо.

Какие-то костыли, давайте эту ошибку переоткроем и решим со временем как сделать правильно, что бы всё работало из коробки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166201</commentid>
    <comment_count>10</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2017-10-06 19:04:05 +0300</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; Денис, спасибо.
&gt; 
&gt; Какие-то костыли, давайте эту ошибку переоткроем и решим со временем как
&gt; сделать правильно, что бы всё работало из коробки.

Я бы советовал открыть другую багу с корректной формулировкой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166202</commentid>
    <comment_count>11</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-10-06 19:47:45 +0300</bug_when>
    <thetext>в общем дальнейшее обсуждение ушло в кулуары, результатом должна стать поддержка мандатной модели selinux в sssd/freeipa. Ошибку пока прошу не закрывать.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>