Autologin в доменного пользователя при PXE-загрузке

Пытаюсь реализовать следующую систему: в недрах PXE живёт соответствие mac<=>user в любом легко читаемом и изменяемом виде. Клиентский компьютер загружается (по PXE, то есть, в live-систему), входит в домен при помощи APPEND calculate=domain:dName,domain_pw=dPasswd. Утилиты кроме всего прочего монтируют /var/calculate/remote, считывают calculate.env, где шаблонными функциями (или другой возможной магией) соответствующему маку сопоставляется его юзернейм и присваивается переменной install.cl_autologin. И вот дальше я запутался :slight_smile:

Файл /var/lib/layman/calculate/profiles/templates/3.6/3_ac_install_live/1-megre/x11-misc/lightdm/lightdm.conf вполне прямо говорит о том, что автологин при включенном домене в lightdm вырублен, а по умолчанию в cldx именно lightdm. Единственный (вероятно?) возможный способ входа в домен на десктопе в X-сессию - это скрипт xautologin (или всётаки ничего подобного?). Возникает вопрос с ключами и способом передачи домена. Для lightdm можно user@domain написать (https://ubuntuforums.org/showthread.php?t=2233260), но какой реальный сценарий подразумевался разработчиками?

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

Отвечаю сам же себе по своим же изысканиям. Переменная cl_autologin подхватывается, но, судя по всему, не проходит валидацию: в выводе cl-core-variables-show она равна ‘’ (и имеет расположение remote, как и должно быть в данном случае). Никаких механизмов автологина именно в домен отковырять пока не удалось. Прошу помощи :slight_smile:

Не текущий момент автологин доменного пользователя не поддерживается, так как для монтирования доменных ресурсов требуется пароль, хранящийся в ключах ядра. В ключи ядра этот пароль попадает, когда его вводит пользователь во время авторизации.

В ключи ядра введёный юзером пароль складывает модуль dbus по фамилии accounts service, который по умолчанию используется lightdm (override`ов не нашёл), а оттуда для авторизации пользователя в сервисах его забирает cl-client-sync-login, который использует для этого собственную библиотеку desktop\variables\_cl_keys.so. Подозреваю, что это обёртка над keyctl. Таким образом, положить пароль скриптом всётаки можно, если моя теория верна :slight_smile:

Кроме того в поставленой задаче есть ещё одно проблемное место: дефолтный пользователь guest в live-системе с uid 1000, который создаётся скриптом /etc/init.d/calculate. При первой попытке логина в доменного пользователя с uid 1000 вручную система просто игнорирует ввод пароля и переспрашивает его снова. Второй ввод пароля производит успешный вход, но с $HOME и всякими другими директориями/переменными происходит странное нечто :slight_smile: На данный момент вижу единственный способ избегать конфликта: внутри /etc/init.d/calculate проверять командную строку ядра, и, если машину вводят в домен, локального пользователя не создавать вообще.

На данный вопросы следующие:

  • Действительно keyctl? Если нет, существует ли в природе код _cl_keys.so? Можно ли его модифицировать и использовать?
  • Достаточно ли будет положить пароль в keyctl, вписать в /etc/lightdm.conf autologin-user=my-user, и (пере-)запустить xdm?
  • Существует ли в утилитах calculate механизм, который бы позволил передать пароль от сервера клиенту в секурном виде?