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

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

    <bug>
          <bug_id>33043</bug_id>
          
          <creation_ts>2017-01-25 11:22:28 +0300</creation_ts>
          <short_desc>Разрешить имена, начинающиеся c цифры</short_desc>
          <delta_ts>2017-02-16 15:19:54 +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>pam0_tcb</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>RS</keywords>
          <priority>P3</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeniy Korneechev">ekorneechev</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>alex</cc>
    
    <cc>cas</cc>
    
    <cc>evg</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>nbr</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>sin</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>161481</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-25 11:22:28 +0300</bug_when>
    <thetext>Проблема такая:
BaseAlt Server 8.1, машина введена в домен https://www.altlinux.org/SSSD/AD
В АД около 10000 пользователей, их логины имеют формат пятизначного числа,
например 12345 (ну или 12345@company.local).

Если пытаться авторизоваться через lightdm - ошибка &quot;Не удается выполнить вход&quot;
через Ctrl+Alt+F2 - сразу после ввода логина ошибка &quot;Login incorrect&quot;
$ su - 12345
su: Authentication token manipulation error

Однако, если пытаться зайти по ssh на данный комп под такой УЗ - то все ОК:
$ ssh 123456@localhost
123456@localhost&apos;s password: 
[123456@basealt8-fresh ~]$

Может есть какие варианты для снятия ограничений с имен пользователей?

Про то, что это плохо - понимаем (совпадение UID и логина, проблемы в программах, которые основывают свою логику на анализе введенных данных, если введены цифры - значит это UID, GID и т.п.).

Однако менять имена всех 10000 УЗ в АД - не вариант...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161482</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-25 11:24:43 +0300</bug_when>
    <thetext>Воркэраунд такой:
$ su - company.local\\12345
$ getent passwd company.local\\12345
12345:*:10532:10000:12345:/home/COMPANY/12345:/bin/bash

Для Ctrl+Alt+F*:
Login: company.local\12345</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161483</commentid>
    <comment_count>2</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-25 12:41:16 +0300</bug_when>
    <thetext>Женя, а в каких приложениях используется вход в AD, где нужна такая авторизация ?
это только lightdm ?
может быть в качестве варианта будет возможность настройки lightdm для авторизации исключельно в AD с жёсткой привязкой к домену ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161485</commentid>
    <comment_count>3</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-25 13:38:30 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; Женя, а в каких приложениях используется вход в AD, где нужна такая авторизация
&gt; это только lightdm ?
Например еще, авторизация в dovecot, с использованием доменных учетных записей (по емейл, привязанному в АД, вход выполняется)

&gt; может быть в качестве варианта будет возможность настройки lightdm для
&gt; авторизации исключельно в AD с жёсткой привязкой к домену ?
А если домен будет недоступен и надо будет войти в иксы локальным админом?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161486</commentid>
    <comment_count>4</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-25 13:45:32 +0300</bug_when>
    <thetext>Хорошо, не с жёсткой привязкой ;)
А авторизация в dovecot не по тикетам идёт ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161492</commentid>
    <comment_count>5</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-25 15:51:53 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Хорошо, не с жёсткой привязкой ;)
&gt; А авторизация в dovecot не по тикетам идёт ?

Авторизация (БД паролей) настроена на PAM
http://wiki2.dovecot.org/PasswordDatabase/PAM
passdb {
  driver = pam
}
Оттуда видимо дальше sssd, а еще дальше тикеты? Таких подробностей я не знаю...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161495</commentid>
    <comment_count>6</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-25 17:44:44 +0300</bug_when>
    <thetext>(В ответ на комментарий №2 - из https://bugzilla.altlinux.org/show_bug.cgi?id=13649#c2)
&gt; Проверка, зашитая в pam_tcb (pam_sm_authenticate и pam_sm_chauthtok), явно
&gt; запрещает аутентификацию и смену пароля для аккаунтов, имена которых содержат
&gt; !isalpha символы.

Может как-то можно это &quot;по-быстрому&quot; обойти =) ? (это же оно самое?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161508</commentid>
    <comment_count>7</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-25 23:56:44 +0300</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; &gt; Проверка, зашитая в pam_tcb (pam_sm_authenticate и pam_sm_chauthtok)....
&gt; Может как-то можно это &quot;по-быстрому&quot; обойти =) ?

Решил сам собрать pam0_tcb без данной проверки - тестовое задание #177152.
После обновления пакета из задания авторизация по цифровым логинам заработала, и в lightdm, и в login, и, что самое важное, в dovecot.

Можно же оставить данное задание в &quot;висячем&quot; положении (уж больно удобно решить данный вопрос на большом количестве станций одной командой apt-repo test 177152 pam0_tcb)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161509</commentid>
    <comment_count>8</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-26 08:01:15 +0300</bug_when>
    <thetext>Нет, не получится - придётся перезапускать время от времени это задание.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161510</commentid>
    <comment_count>9</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-26 09:00:24 +0300</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; Нет, не получится - придётся перезапускать время от времени это задание.

Вообще, на первый взгляд достаточно подменить /lib64/security/pam_tcb.so на собранный в этом задании. Либо руками, либо может соберу новый пакет для этой цели.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161511</commentid>
    <comment_count>10</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-26 09:04:56 +0300</bug_when>
    <thetext>Поаккуратнее с этим, проверьте что бы этот пакет не влетал в систему по умолчанию при сборке дистрибутивов и не обновлял существующие системы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161600</commentid>
    <comment_count>11</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-01-30 15:24:33 +0300</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; (В ответ на комментарий №6)
&gt; &gt; &gt; Проверка, зашитая в pam_tcb (pam_sm_authenticate и pam_sm_chauthtok)....
&gt; &gt; Может как-то можно это &quot;по-быстрому&quot; обойти =) ?
&gt; 
&gt; Решил сам собрать pam0_tcb без данной проверки - тестовое задание #177152.
&gt; После обновления пакета из задания авторизация по цифровым логинам заработала,
&gt; и в lightdm, и в login, и, что самое важное, в dovecot.
&gt; 
&gt; Можно же оставить данное задание в &quot;висячем&quot; положении (уж больно удобно решить
&gt; данный вопрос на большом количестве станций одной командой apt-repo test 177152
&gt; pam0_tcb)?
Спасибо! Думаю, правильнее будет сделать опцию включаемой через конфигуратор и документировать эту опцию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161605</commentid>
    <comment_count>12</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2017-01-30 17:11:02 +0300</bug_when>
    <thetext>Вот такой комментарий есть в исходниках:
* Various libraries at various times have had bugs related to
* &apos;+&apos; or &apos;-&apos; as the first character of a username. Don&apos;t take
* any chances here. Require that the username starts with a
* letter.

Может стоит разрешить использовать в качестве первого символа 
в добавок цифру и &apos;_&apos;, а не рубить на корню все !isalpha?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161912</commentid>
    <comment_count>13</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2017-02-16 02:19:43 +0300</bug_when>
    <thetext>Разрешая числовые имена аккаунтов, вы открываете дорогу к undefined behavior в софте, который оперирует именами и идентификаторами аккаунтов.
Например, если некий аккаунт имеет имя 1000, то априори неизвестен результат операции chown 1000 ФАЙЛ: то ли владельцем ФАЙЛа станет аккаунт по имени 1000, то ли аккаунт с идентификатором 1000.

По этой причине я не рекомендую разрешать числовые имена аккаунтов.

Я сожалею, что pam_tcb оказалось единственным местом в операционной системе, вставшем на вашем пути превращения ОС в тыкву.  Я подумаю, что можно предпринять, чтобы в будущих версиях ОС это было не так просто сделать.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>