Проблема такая: BaseAlt Server 8.1, машина введена в домен https://www.altlinux.org/SSSD/AD В АД около 10000 пользователей, их логины имеют формат пятизначного числа, например 12345 (ну или 12345@company.local). Если пытаться авторизоваться через lightdm - ошибка "Не удается выполнить вход" через Ctrl+Alt+F2 - сразу после ввода логина ошибка "Login incorrect" $ su - 12345 su: Authentication token manipulation error Однако, если пытаться зайти по ssh на данный комп под такой УЗ - то все ОК: $ ssh 123456@localhost 123456@localhost's password: [123456@basealt8-fresh ~]$ Может есть какие варианты для снятия ограничений с имен пользователей? Про то, что это плохо - понимаем (совпадение UID и логина, проблемы в программах, которые основывают свою логику на анализе введенных данных, если введены цифры - значит это UID, GID и т.п.). Однако менять имена всех 10000 УЗ в АД - не вариант...
Воркэраунд такой: $ 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
Женя, а в каких приложениях используется вход в AD, где нужна такая авторизация ? это только lightdm ? может быть в качестве варианта будет возможность настройки lightdm для авторизации исключельно в AD с жёсткой привязкой к домену ?
(В ответ на комментарий №2) > Женя, а в каких приложениях используется вход в AD, где нужна такая авторизация > это только lightdm ? Например еще, авторизация в dovecot, с использованием доменных учетных записей (по емейл, привязанному в АД, вход выполняется) > может быть в качестве варианта будет возможность настройки lightdm для > авторизации исключельно в AD с жёсткой привязкой к домену ? А если домен будет недоступен и надо будет войти в иксы локальным админом?
Хорошо, не с жёсткой привязкой ;) А авторизация в dovecot не по тикетам идёт ?
(В ответ на комментарий №4) > Хорошо, не с жёсткой привязкой ;) > А авторизация в dovecot не по тикетам идёт ? Авторизация (БД паролей) настроена на PAM http://wiki2.dovecot.org/PasswordDatabase/PAM passdb { driver = pam } Оттуда видимо дальше sssd, а еще дальше тикеты? Таких подробностей я не знаю...
(В ответ на комментарий №2 - из https://bugzilla.altlinux.org/show_bug.cgi?id=13649#c2) > Проверка, зашитая в pam_tcb (pam_sm_authenticate и pam_sm_chauthtok), явно > запрещает аутентификацию и смену пароля для аккаунтов, имена которых содержат > !isalpha символы. Может как-то можно это "по-быстрому" обойти =) ? (это же оно самое?)
(В ответ на комментарий №6) > > Проверка, зашитая в pam_tcb (pam_sm_authenticate и pam_sm_chauthtok).... > Может как-то можно это "по-быстрому" обойти =) ? Решил сам собрать pam0_tcb без данной проверки - тестовое задание #177152. После обновления пакета из задания авторизация по цифровым логинам заработала, и в lightdm, и в login, и, что самое важное, в dovecot. Можно же оставить данное задание в "висячем" положении (уж больно удобно решить данный вопрос на большом количестве станций одной командой apt-repo test 177152 pam0_tcb)?
Нет, не получится - придётся перезапускать время от времени это задание.
(В ответ на комментарий №8) > Нет, не получится - придётся перезапускать время от времени это задание. Вообще, на первый взгляд достаточно подменить /lib64/security/pam_tcb.so на собранный в этом задании. Либо руками, либо может соберу новый пакет для этой цели.
Поаккуратнее с этим, проверьте что бы этот пакет не влетал в систему по умолчанию при сборке дистрибутивов и не обновлял существующие системы.
(В ответ на комментарий №7) > (В ответ на комментарий №6) > > > Проверка, зашитая в pam_tcb (pam_sm_authenticate и pam_sm_chauthtok).... > > Может как-то можно это "по-быстрому" обойти =) ? > > Решил сам собрать pam0_tcb без данной проверки - тестовое задание #177152. > После обновления пакета из задания авторизация по цифровым логинам заработала, > и в lightdm, и в login, и, что самое важное, в dovecot. > > Можно же оставить данное задание в "висячем" положении (уж больно удобно решить > данный вопрос на большом количестве станций одной командой apt-repo test 177152 > pam0_tcb)? Спасибо! Думаю, правильнее будет сделать опцию включаемой через конфигуратор и документировать эту опцию.
Вот такой комментарий есть в исходниках: * Various libraries at various times have had bugs related to * '+' or '-' as the first character of a username. Don't take * any chances here. Require that the username starts with a * letter. Может стоит разрешить использовать в качестве первого символа в добавок цифру и '_', а не рубить на корню все !isalpha?
Разрешая числовые имена аккаунтов, вы открываете дорогу к undefined behavior в софте, который оперирует именами и идентификаторами аккаунтов. Например, если некий аккаунт имеет имя 1000, то априори неизвестен результат операции chown 1000 ФАЙЛ: то ли владельцем ФАЙЛа станет аккаунт по имени 1000, то ли аккаунт с идентификатором 1000. По этой причине я не рекомендую разрешать числовые имена аккаунтов. Я сожалею, что pam_tcb оказалось единственным местом в операционной системе, вставшем на вашем пути превращения ОС в тыкву. Я подумаю, что можно предпринять, чтобы в будущих версиях ОС это было не так просто сделать.