Портирование deb пакета для Astra Linux 1.6 Смоленск из debian 9

synacker

New member
Сообщения
8
#1
Добрый день!

Есть deb пакет, который в процессе установки:
1. Создает нового пользователя с домашним каталогом с помощью последовательности комманд:
Bash:
adduser --group new_user
adduser --disabled-password --ingroup new_user --system new_user
2. Добавляет service файл для systemd который добавляет возможность запуска сервисе new_service от лица юзера:
INI:
[Unit]
Description=New super service
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=1
User=new_user
Group=new_user
ExecStart=/usr/bin/new_service

[Install]
WantedBy=multi-user.target
Данный deb файл работает на debian 9, но не работает в Astra Linux 1.6 SE:
  1. В режиме киоска не создается домашний каталог для new_user - ошибка "Operation not permitted"
  2. В обычном режиме deb пакет устанавливается, но сервис, который запускается от new_user не имеет доступа к своему домашнему каталогу.

Подскажите, каким образом можно установить подобный deb пакет в Astra Linux 1.6?

Все бинарники пакета подписаны подписью для Astra Linux 1.6.

Спасибо за внимание!
 

oko

New member
Сообщения
1 257
#2
to synacker
Модуль экстрасенсорики подсказывает, что ваш пакет:
  • неверно создает пользователя - ему нужен пароль и нужно указать мин/макс уровни доступа и метки контроля целостности;
  • параметры типа User и Group в systemd-Unit не отработают в Astra Linux (у меня, во всяком случае, не получилось так запускать Unit из-под какого-то пользователя) - пробуйте модифицировать сервис в части ExecStart с вызовом sudo (см. пример тут). Хотя в ALSE такую схему не проверял...
В режиме киоска этот сервис, скорее всего, не сработает из-за специфики реализации Киоска в ALSE...
Если вы сумели подписать бинари у РусБиТеха, обратитесь в техподдержку непосредственно - там точно ответят, как собирать пакеты под ALSE с включенным режимом Мандатного Контроля Целостности...
Если МКЦ в ваших условиях эксплуатации ALSE не нужен - отключите его через astra-mic-control disable - тогда уйдет проблема с PDPLevel, кстати...

ЗЫ Зря создали две темы - можно было бы эту расширить, дописав вопрос по PDPLevel...
 

synacker

New member
Сообщения
8
#3
to okko
Спасибо за ответ!
неверно создает пользователя - ему нужен пароль и нужно указать мин/макс уровни доступа и метки контроля целостности;
Это системный юзер, пароля не требуется. По поводу уровня доступа, думаю да, он сейчас не задается и надо выставить 1:63:0, как и у сервиса.
Сейчас у юзера уровень 0:63:0 - так создалось по умолчанию.
А как выставить уровень для юзера?
параметры типа User и Group в systemd-Unit не отработают в Astra Linux (у меня, во всяком случае, не получилось так запускать Unit из-под какого-то пользователя) - пробуйте модифицировать сервис в части ExecStart с вызовом sudo (см. пример тут). Хотя в ALSE такую схему не проверял...
Спасибо за инфу, я попробовал через, но пока сервис не хочет запускаться, возможно из-за первой причины - надо дать юзеру больше прав.

В режиме киоска этот сервис, скорее всего, не сработает из-за специфики реализации Киоска в ALSE...
Если вы сумели подписать бинари у РусБиТеха, обратитесь в техподдержку непосредственно - там точно ответят, как собирать пакеты под ALSE с включенным режимом Мандатного Контроля Целостности...
Если МКЦ в ваших условиях эксплуатации ALSE не нужен - отключите его через astra-mic-control disable - тогда уйдет проблема с PDPLevel, кстати..
Т.е., получается, для Astra Linux SE отдельный компилятор нужен в режиме киоска? Подпись то у нас есть, а информации ноль )
 

synacker

New member
Сообщения
8
#4
Разобрался с астра линукс в обычном режиме (не киоск).
Вот этот код работает из коробки:
Bash:
adduser --group new_user
adduser --disabled-password --ingroup new_user --system new_user
INI:
[Unit]
Description=New super service
After=network.target

[Service]
PDPLabel=0:63:0
Type=simple
Restart=on-failure
RestartSec=1
User=new_user
Group=new_user
ExecStart=/usr/bin/new_service

[Install]
WantedBy=multi-user.target
Теперь разбираюсь с режимом киоска )

параметры типа User и Group в systemd-Unit
Похоже, что работает! Т.к. файлы в /home/sies_unit создаются от пользователя sies_unit сервисом
 

synacker

New member
Сообщения
8
#5
Проблема в режиме киоска была с незагруженным публичным ключом в астру, теперь все работает!

В целом, пакет успешно портировался, нужно было только добавить:
Код:
PDPLabel=0:63:0
в unit файл сервиса!

Всем спасибо! )