Ubuntu 18.04: запуск службы под учетной записью домена - PullRequest
0 голосов
/ 09 января 2020

У меня проблема, которая кажется наиболее тесно связанной с этой, но хотя этот плакат достиг решения, в моей системе не помогли те же вещи:

https://unix.stackexchange.com/questions/420881/how-can-i-run-a-systemd-service-under-an-active-directory-account

-and-

системная ошибка "не удалось запустить службу: служба единицы не загружена должным образом: exe c ошибка формата"

Мой компьютер с Ubuntu присоединен к нашему домену, и я могу "id john.doe" и получить действительный поиск из AD. Мне не нужно указывать домен, потому что в моем файле /etc/sssd/sssd.conf у меня есть «use_fully_qualified_names = False».

Я пробовал как true, так и false, и ни один из них, похоже, не дает мне средство разрешения.

Сначала я редактирую свой файл .service и устанавливаю

[Unit]
Description=servicex
After=network.target

[Service]
ExecStart=/v/runsvc.sh
User=john
WorkingDirectory=/v
KillMode=process
KillSignal=SIGTERM
TimeoutStopSec=5min

[Install]
WantedBy=multi-user.target

Затем

 systemctl daemon-reload
 systemctl start servicex.service

Служба запускается.

I затем отредактируйте мой служебный файл и измените пользователя на john.doe. Сохраните файл, перезагрузите демон и запустите службу. Я получаю

Failed to start servicex.service: Unit servicex.service is not loaded properly: Exec format error.
See system logs and 'systemctl status servicex.service' for details.
Failed: failed to start servicex.service

systemctl status servicex.service возвращает:

● servicex.service - servicex
   Loaded: error (Reason: Exec format error)
   Active: inactive (dead) since Thu 2020-01-09 13:34:47 UTC; 15s ago
  Process: 5060 ExecStart=/v/runsvc.sh (code=exited, status=0/SUCCESS)
 Main PID: 5060 (code=exited, status=0/SUCCESS)

journalctl -u servicex.service не показывает новых записей

journalctl не показывает никаких новые записи.

Это проблема с разрешениями, проблема с владельцем?

Просматривая каждую из папок службы с помощью команды «ll -R» (типичная выдержка):

drwxr-xr-x 2 john.doe domain users  4096 Jun 15  2016 ./
drwxr-xr-x 8 john.doe domain users  4096 Jun 15  2016 ../
-rw-r--r-- 1 john.doe domain users 29597 Jun 15  2016 CHANGES.md
-rw-r--r-- 1 john.doe domain users  1092 Jun 15  2016 LICENSE

Это типично для всех файлов в этом дереве подпапок.

Как я могу запустить эту службу как пользователь домена?

1 Ответ

0 голосов
/ 09 января 2020

Я нашел проблему и обходной путь. Пожалуйста, не стесняйтесь публиковать лучшие решения, если они есть.

Проблема здесь в том, что у пользователя домена есть «.» в середине этого. "Джон Доу". Попробовав подставить фиктивные значения в поле пользователя, я заметил, что начал получать другое сообщение об ошибке, в котором говорилось, что учетная запись плохая.

Должна быть какая-то причина, по которой использование john.doe не давало мне те же сообщения, что и при использовании "johnbogus". Фактически «john.bogus» и «john.doe» возвращают одну и ту же ошибку, но «johnbogus.doe» и «john.doe» возвращают разные сообщения об ошибках.

Исходя из этого, я предположил, что служба пользовательское поле не анализируется правильно. Поэтому я запросил учетную запись для нашего домена без "." в этом. Эта учетная запись устанавливается и работает отлично.

Я считаю, что дополнительный ответ будет лучшим ответом, если кто-то найдет способ цитирования или экранирование от «john.doe», чтобы он работал правильно. Я попытался просто поставить двойные кавычки вокруг него ", но это не дало результата.

...